4

我必须显示当前服务器主机(在 PHP 中,但这不是很重要)。我不知道我在哪个主机上。我怎么能在没有安全问题的情况下做到这一点?如果我使用$_SERVER['HTTP_HOST'],它来自客户端,所以我不能相信这个信息(我认为它可以被重写)。

PS:我读过这篇文章:HTTP_HOST 的可靠性如何?但我没有找到任何回应(也许我没有正确搜索......)

4

3 回答 3

5

用于$_SERVER['SERVER_NAME']此目的,来自文档:

当前脚本在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,​​这将是为该虚拟主机定义的值。

于 2012-06-13T14:36:45.360 回答
1

如果您不打算将其用于安全或身份验证目的,那么$_SERVER['HTTP_HOST']应该没问题。您的脚本儿童访问者可能有不正确的值,但您的常规用户将使用行为良好的浏览器。

只要您像对待任何其他用户输入一样对待它,您就不会遇到任何安全问题。清理它,不要构建文件名或基于它执行命令,在显示它之前对其进行转义,等等。

于 2012-06-13T16:44:47.017 回答
0

你甚至可以给

php_uname('n');

甚至可能

`hostname -f`

(注意这里的反引号)一试。

于 2012-06-13T16:31:58.097 回答