我知道不应该使用寄存器全局变量,但不太明白为什么?
例如:这是我经常发现的代码,用于演示在example.com?authorized=1
向脚本传递类似内容时使用寄存器全局变量的安全风险:
if (authenticated_user())
{
$authorized = true;
}
if ($authorized)
{
include '/highly/sensitive/data.php';
}
我的问题是,如果用户必须传入authorized=1
url,他应该知道我在脚本中使用的变量名,对吗?这怎么可能?
parse_str()
同样,类似于注册全局变量的功能也不是安全风险吗?