这是我的情况。在我的托管帐户中我有几个文件夹,每个文件夹代表一个网站。
在我托管的目录根目录中,php5.ini
包含register_globals off
。在他们的文件夹上工作需要register_globals on
。我尝试在此文件夹的php_flag register_globals on
中添加此行.htaccess
,但没有成功。有没有任何方法可以使这个文件夹全局化,所有其他文件夹全局关闭。
(对不起我的英文)谢谢
答案 0 :(得分:2)
您可以使用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."
只需访问auth.php?authorized = 1,即可绕过密码验证。
这就是为什么PHP默认在以后的版本中设置register_globals off
。
我建议您升级代码以解决此问题。