【问题标题】:Is there a good alternative to $_SERVER['SERVER_NAME']?$_SERVER['SERVER_NAME'] 有什么好的替代品吗?
【发布时间】:2012-09-07 13:59:02
【问题描述】:

我在PHP doc pages阅读了以下评论:

"请注意,Server-Array 的大部分内容(甚至 $_SERVER['SERVER_NAME']) 由客户端提供,可以 被操纵。它们也可用于注射,因此必须 像任何其他用户输入一样检查和处理。”

然后我在这里看到了一个话题on StackOverflow saying that $_SERVER['SERVER_NAME'] is partly server controlled

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

OBS: Apache、Unix 上的 PHP 5.3。

【问题讨论】:

    标签: php apache security superglobals


    【解决方案1】:

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

    【讨论】:

    • 实际上,直到现在我还在硬编码它。只是想知道是否有更有效的方法。但很高兴知道这是一种做法。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-22
      • 2011-02-03
      • 1970-01-01
      • 2020-04-27
      相关资源
      最近更新 更多