【问题标题】:URL Parameters to PHP VariablesPHP 变量的 URL 参数
【发布时间】:2011-05-12 09:23:21
【问题描述】:

我从事 PHP 已经有一段时间了,从来不需要帮助,但这次我完全糊涂了。我有一行代码和一个 echo 语句。

问题:URL 参数自动假定 PHP 变量值同名。例如,我有一个 URL,其参数名为 var_name,如下所示:

http://www.example.com?var_name=abc123

还有一个 1 行 PHP 脚本,其中包含一个名为 var_name 的变量,如下所示:

echo $var_name;

然后我在以下页面上得到输出:abc123

这是 PHP 页面中唯一的代码!这种行为正是我期望$_GET 工作的方式,但我没有使用它。

我只在运行 PHP 5.2 的 1 台特定服务器上遇到此问题。我已经在其他 4 台服务器上进行了测试,没有一个有这种行为。我认为这是一个 PHP 配置问题,但运行默认配置并且在配置文档中找不到任何内容。

【问题讨论】:

    标签: php url parameters get


    【解决方案1】:

    这称为register globals. 如果服务器已打开注册全局变量,那么您可以这样做。

    我建议不要在任何服务器上注册全局变量。因为它可能会在您的系统中引入安全漏洞。

    一个安全漏洞的例子。

    if($auth == true)
    {
        // sensitive stuff here
    }
    

    如果 auth 只是一个常规变量,那么我可以在 URL 中执行此操作。

    http://www.example.com/page.php?auth=true

    并查看敏感信息。

    【讨论】:

    • 感谢您的快速回复。从未使用过 register_globals,再也不想使用了。这是一个漏洞百出的漏洞。谢谢大家。
    【解决方案2】:

    您可能启用了register_globals

    有关信息,请参阅the manual

    【讨论】:

      猜你喜欢
      • 2018-04-17
      • 2011-09-22
      • 2012-07-13
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2013-07-25
      相关资源
      最近更新 更多