隐藏/替换 Nginx 位置标头?

隐藏/替换 Nginx 位置标头?

我正在尝试通过 PCI 合规性测试,但收到一个“高风险漏洞”。

问题描述如下:

网页的标题中有时会包含有关 Web 服务器所在机器的信息。在某些情况下,该信息可能包括防火墙或代理服务器后面的本地信息,例如本地 IP 地址。

看起来 Nginx 正在响应:

 Service: https 
 Received: HTTP/1.1 302 Found 
 Cache-Control: no-cache 
 Content-Type: text/html; charset=utf-8 
 Location: http://ip-10-194-73-254/ 
 Server: nginx/1.0.4 + Phusion Passenger 3.0.7 (mod_rails/mod_rack) 
 Status: 302 X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7 
 X-Runtime: 0 
 Content-Length: 90 
 Connection: Close <html><body>You are being <a href="http://ip-10-194-73-254/">redirect    ed</a>.</body></html> 

我不是专家,所以如果我错了,请纠正我:但从我收集的信息来看,我认为问题在于标题Location返回的http://ip-10-194-73-254/是私人地址,而它应该返回我们的域名(即 ravn.com)。

所以,我猜我需要以某种方式隐藏或替换Location标题?我是一名程序员,而不是服务器管理员,所以我不知道该怎么做……任何帮助都将不胜感激!另外,我要补充一点,我们正在运行多台服务器,因此配置需要可转移到任何具有任何私有地址的服务器。

答案1

嗯,302 Found是 HTTP 重定向状态,所以您被重定向了。您不是被重定向的,nginx而是由后台软件nginx(据我所知,是在 Phusion Passenger 上运行的 Ruby 应用程序)重定向的,因为有X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.7由后端应用程序添加的标头( ),而不是nginx。因此,您应该检查 Ruby 应用程序的源代码以找出导致重定向的原因。您被重定向到的地址无论如何都无法从公共网站访问,因此这不是漏洞,而是一种配置错误。

相关内容