未处理的结果记录 $_SERVER['SERVER_NAME']


Unexpeted results logging $_SERVER['SERVER_NAME']

$_DIR['ROOT'] = $_SERVER['DOCUMENT_ROOT'] .'/..';//Outside the scope of WWW root
$_DIR['LOG']  = $_DIR['ROOT'] .'/logs/LogFiles/' . $_SERVER['SERVER_NAME'];
if (!is_dir($_DIR['LOG'])){Mkdir($_DIR['LOG'],0700,TRUE);}

我创建了一个目录来在我的开发服务器上登录,为这些日志分配了各种值,但我得到了一些与我的网站完全没有关联的解析 DNS 名称。

为什么 $_SERVER['SERVER_NAME'] 要解析与我的服务器无关的其他名称?

预期的可能性

  • 127.0.0.1

  • 内部 IP 地址

  • 外部 IP 地址

  • test.example.com(我的网站 URI(

意外结果

  • httpheader.net

  • www.baidu.com

  • www.epochtimes.jp

  • www.ly.com

如果您的 Web 服务器接受任何和所有主机名的请求(通常是因为它具有默认的虚拟主机(,则可以使用任意 HTTP Host 标头调用您的 PHP 脚本。现在,通常只有当有人特意向您的 IP 地址发送手动构建的 HTTP 请求时,才会发生这种情况。但是,特别是由于那里提到了亚洲网站,您可能已成为草泥马的受害者,或者中国人玩弄他们的DNS操纵功能,在您的服务器上喷射随机流量(有意或无意(。更良性的解释还可能包括某处过时的 DNS 缓存、某人系统中的错误配置或基于谁知道什么进行随机查询的随机机器人。