检测到目标URL存在http host头攻击漏洞

检测到目标URL存在http host头攻击漏洞。

这个漏洞通常表示目标URL会被截取,攻击者可以修改了头信息中的”host”属性后再调用,会导致最后导向的目标主机被篡改。

那为什么会有这个漏洞产生?因为代码中使用了系统变量$_SERVER[‘server_name’],它获取的正是http headers中的host信息(在通常情况下是这样,如果server的端口修改了,那host = server_name : server_port)。

$_SERVER[‘http_host’]保存的也是http request headers中的host信息。http_host和server_name是有可能不同的,这在于是否在apache配置文件中配置了“UseCanonicalName On”的配置项,如果设置了此配置,则http_host是http request headers中的host信息,而server_name则是apache配置文件中配置的ServerName的信息。未设置此配置项时,http_host与server_name都是http request headers中的host信息。

要避免这个漏洞,需要注意不要使用PHP的系统变量$_SERVER[‘server_name’]。
如果需要定位某些操作的链接信息,建议添加相关配置后使用配置的信息。(如果必须要用,就配置“UseCanonicalName On”并设置“ServerName”吧)

如果使用框架(例如thinkphp),在视图中也不要使用系统变量来进行某些操作$Think.server.server_name。

你可能感兴趣的:(杂记,host头攻击漏洞,host头漏洞,http漏洞)