我做了很多搜索,也读了PHP$_SERVER docs.对于在整个站点中使用的简单链接定义的PHP脚本,我有这样的权利吗?
$_SERVER['SERVER_NAME']
基于您的Web服务器的配置文件(在我的例子中是Apache2),并且根据以下几个指令而有所不同:(1)VirtualHost、(2)ServerName、(3)UseCanonicalName等.
$_SERVER['HTTP_HOST']
是基于客户的请求.
因此,在我看来,为了使我的脚本尽可能兼容,应该使用$_SERVER['HTTP_HOST']
.这个假设正确吗?
Followup comments:
我想读了这篇文章后,我有点多疑了,注意到一些人说"他们不相信$_SERVER
名Var中的任何一个":
http://markjaquith.wordpress.com/2009/09/21/php-server-vars-not-safe-in-forms-or-links/个
http://php.net/manual/en/reserved.variables.server.php#89567( comments :Vladimir Kornea 14-Mar-200901:06)
显然,讨论的主要内容是关于$_SERVER['PHP_SELF']
,以及为什么在没有正确转义以防止XSS攻击的情况下,不应该在form action属性中使用它.
我对上述原始问题的结论是,在一个网站上的所有链接中使用$_SERVER['HTTP_HOST']
是"安全的",而不必担心XSS攻击,即使在表单中使用.
如果我说错了,请纠正我.