我必须显示当前服务器主机(在 PHP 中,但这不是很重要)。我不知道我在哪个主机上。我怎么能在没有安全问题的情况下做到这一点?如果我使用$_SERVER['HTTP_HOST']
,它来自客户端,所以我不能相信这个信息(我认为它可以被重写)。
PS:我读过这篇文章:HTTP_HOST 的可靠性如何?但我没有找到任何回应(也许我没有正确搜索......)
我必须显示当前服务器主机(在 PHP 中,但这不是很重要)。我不知道我在哪个主机上。我怎么能在没有安全问题的情况下做到这一点?如果我使用$_SERVER['HTTP_HOST']
,它来自客户端,所以我不能相信这个信息(我认为它可以被重写)。
PS:我读过这篇文章:HTTP_HOST 的可靠性如何?但我没有找到任何回应(也许我没有正确搜索......)
用于$_SERVER['SERVER_NAME']
此目的,来自文档:
当前脚本在其下执行的服务器主机的名称。如果脚本在虚拟主机上运行,这将是为该虚拟主机定义的值。
如果您不打算将其用于安全或身份验证目的,那么$_SERVER['HTTP_HOST']
应该没问题。您的脚本儿童访问者可能有不正确的值,但您的常规用户将使用行为良好的浏览器。
只要您像对待任何其他用户输入一样对待它,您就不会遇到任何安全问题。清理它,不要构建文件名或基于它执行命令,在显示它之前对其进行转义,等等。
你甚至可以给
php_uname('n');
甚至可能
`hostname -f`
(注意这里的反引号)一试。