为了账号安全,请及时绑定邮箱和手机立即绑定

什么是PHP中的register_globals?

什么是PHP中的register_globals?

PHP
哈士奇WWW 2019-10-09 16:55:40
有人可以举出一些例子register_globals吗?并被global $user_id;认为是全球注册吗?
查看完整描述

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

}


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 1161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信