一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

php5.4.0的register globals设置

时间:2013-08-07 编辑:简简单单 来源:一聚教程网

php4.2.0的版本是没有用过,php官网提到:php最具争议的变化是php4.2.0版本配置中register_globals的On改为了Off,对此项依赖的是如此普遍以至于很多人不知道他的存在而以为php本来就是这么工作的,下面解释这个指令如何写出不安全的代码,但是要知道这个指令没有什么不安全的地方,只有不安全的代码。

当register_globals打开以后,很多代码都可以被注入比如html表单提交的内容,再加上php在使用变量的时候无需初始化,这就使得更容易出现不安全的代码。比如我将php.ini中register_globals设置为On开始状态:

 代码如下 复制代码


// 当用户合法的时候,赋值 $flag = true
if (is_user()) {
    $flag= true;
}

// 由于并没有事先把 $flag初始化为 false,
// 当 register_globals 打开时,可能通过GET user.php?flag=1 来定义该变量值
// 所以任何人都可以绕过身份验证
if ($flag) {
    include "/highly/sensitive/data.php";
}
?>  


 以上代码在register_globals = On的时候,由于$flag没有初始化,在后面判断的时候通过get方式的flag = 1也可以执行include。

热门栏目