我的php页面流量很大,但没有设置变量$_SERVER['HTTP_HOST']
。
此流量类似于每秒1次点击。我不知道它可能是什么,但为了减少服务器负载,我在每个php页面的顶部做这个:
if (!isset($_SERVER['HTTP_HOST']))
exit;
你知道是什么原因引起的吗?没有设置HTTP_HOST
时退出是否安全?
普通用户是否可以在未设置HTTP_HOST
的情况下访问我的网页?
答案 0 :(得分:6)
http://wiki.apache.org/httpd/InternalDummyConnection
论文#$!“#sh#f#ck * $!连接在那里制造了很多错误,(缓存,没有HTTP / 1.1等)。一个'简单'的解决方案是没有你的主机名Virtuahost为您的主应用程序提供默认的虚拟主机。使用'it works'页面保存一个非常简单的默认虚拟主机,或者非常简单的“如果您获得此页面,您可能会尝试在某处获得支持HTTP / 1.1的浏览器”,如静态页面。然后,所有HTTP / 1.0流量或仅通过IP访问服务器的人员将不在您的实际应用程序中。
为了完成,我今年看到一家公司使用不良代理从所有传出的HTTP流量中删除Host头。但是那些坏人是愚蠢的,我不认为有很多人仍然在没有主机的情况下浏览HTTP / 1.0。
答案 1 :(得分:2)
HTTP_HOST
是客户端HTTP请求的一部分,它指定请求将指向哪个主机名。有必要在多站点设置中区分正确的站点。
如果未设置HTTP_HOST
,则客户端非常非常老(HTTP 1.0不支持HTTP_HOST)或直接向您网站的IP发出请求。
我无法看到阻止你这样做的任何伤害。但是,如果您担心流量,那么在Web服务器级别修复此功能可能更明智。