3 回答
TA贡献1998条经验 获得超6个赞
该register_globals指令:
register_globals是一个内部PHP设置,它将$_REQUEST数组的元素注册为变量。如果以POST或形式提交值GET,则可以通过PHP脚本中的变量(以输入字段的名称命名)自动访问该输入的值。
换句话说,如果您提交的表单包含username文本字段,($username === $_POST['username'])则脚本最开始的表达式将返回true。
它的臭名昭著归因于它打开了许多安全漏洞的事实,特别是对于从安全角度而言遵循严格编码风格之外的任何事物的人们。
经典示例:
if(user_is_admin($user))
{
$authorized = true;
}
if($authorized)
{
// let them do anything they want
}
现在,如果您在Web浏览器中访问了该脚本并且服务器已register_globals打开,则只需将其附加?authorized=1到URL 即可启用上帝模式!
该global关键字:
global 是与register_globals无关的关键字。
这是一个用法示例:
$foo = 'bar';
baz();
function baz()
{
echo $foo; // PHP warns you about trying to use an uninitialized variable
// and nothing is output (because $foo doesn't exist here)
}
buzz();
function buzz()
{
global $foo; // Enables the use of $foo in this scope
echo $foo; // Prints 'bar' to screen
}
- 3 回答
- 0 关注
- 1161 浏览
添加回答
举报