繁体   English   中英

PHP 变量的 URL 参数

[英]URL Parameters to PHP Variables

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

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

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

和一个带有名为var_name的变量的 1 行 PHP 脚本,如下所示:

echo $var_name;

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

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

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

这称为 注册全局变量。 如果服务器已打开注册全局变量,则您可以执行此操作。

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

一个安全漏洞的例子。

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

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

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

并查看敏感信息。

您可能启用了register_globals

有关信息,请参阅 手册

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM