这是我的情况。 在我的主机帐户中,我有几个文件夹,每个文件夹代表一个网站。在我的托管目录根目录中,php5.ini
具有register_globals off
。在他们的文件夹中,为了工作需要register_globals on
。我试图在此文件夹的.htaccess
php_flag register_globals on
添加此行,但没有成功。 是否有任何方法可以使此文件夹全局打开,而所有其他文件夹全局关闭。(对不起我的英语)谢谢
您可以使用
extract()
函数导入全局变体。例如:
extract($_GET);
extract($_COOKIE);
extract($_POST);
但是,如果您的PHP变体可以通过使用输入来控制,那就很危险了。
例如,如果您有以下代码要执行,请在auth.php
中使用登录:
$authorized = check_user($username, $password);
...
extract($_GET);
...
if($authorized)
echo "Welcome!admin."
else
echo "Please log in."
只需访问身份验证.php?授权=1,然后您就可以绕过密码验证。这就是为什么PHP默认设置register_globals off
在更高版本中的原因。
我建议升级代码以解决此问题。