4

我在PHP 文档页面上阅读了以下评论:

“请注意,服务器数组的大部分内容(甚至 $_SERVER['SERVER_NAME'])都是由客户端提供的并且可以被操纵。它们也可以用于注入,因此必须像任何其他用户输入一样进行检查和处理。”

然后我在 StackOverflow 上看到一个话题,说 $_SERVER['SERVER_NAME'] 部分是服务器控制的

我可以相信这个值来获取我网站的网址吗?如果我不能真正信任 $_SERVER['SERVER_NAME'],我怎样才能得到这个值?有哪些可能的替代方案及其优缺点?

OBS: Apache、Unix 上的 PHP 5.3。

4

2 回答 2

3

我通常将我网站的“真实”网址硬编码到网站配置文件中。我不会依赖 Apache 的“说”来告诉您您的网址。您是否有几个不同的虚拟主机或服务器别名指向同一个 docroot?

于 2012-09-07T14:02:57.630 回答
1

您可以通过在 Apache 配置中启用 UseCanonicalName 指令来强制执行此变量的安全性,如http://www.apacheref.com/ref/http_core/UseCanonicalName.html中所述

于 2012-09-07T14:02:47.967 回答