register_globals on in PHP5 using htaccess


register_globals on in PHP5 using htaccess

这是我的情况。 在我的主机帐户中,我有几个文件夹,每个文件夹代表一个网站。在我的托管目录根目录中,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在更高版本中的原因。

我建议升级代码以解决此问题。