加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php5.4.0的register globals操作

发布时间:2022-06-22 00:44:55 所属栏目:PHP教程 来源:互联网
导读:在php中register globals函数在php5.3.0开始移除在5.4.0开始废弃了,但还是有很多的网站都有这个函数,下面我来介绍一些解决办法. php4.2.0的版本是没有用过,php官网提到:php最具争议的变化是php4.2.0版本配置中register_globals的On改为了Off,对此项依赖的是
  在php中register globals函数在php5.3.0开始移除在5.4.0开始废弃了,但还是有很多的网站都有这个函数,下面我来介绍一些解决办法.
 
  php4.2.0的版本是没有用过,php官网提到:php最具争议的变化是php4.2.0版本配置中register_globals的On改为了Off,对此项依赖的是如此普遍以至于很多人不知道他的存在而以为php本来就是这么工作的,下面解释这个指令如何写出不安全的代码,但是要知道这个指令没有什么不安全的地方,只有不安全的代码.
 
  当register_globals打开以后,很多代码都可以被注入比如html表单提交的内容,再加上php在使用变量的时候无需初始化,这就使得更容易出现不安全的代码.比如我将php.ini中register_globals设置为On开始状态:
 
  实例代码如下:
 
  <?php
  // 当用户合法的时候,赋值 $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.
 
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!