php专区

 首页 > php专区 > PHP基础 > 环境 > php5.4.0的register globals设置

php5.4.0的register globals设置

分享到:
【字体:
导读:
          在php中register globals函数在php5.3.0开始移除在5.4.0开始废弃了,但还是有很多的网站都有这个函数,下面我来介绍一些解决办法. php4.2.0的版本是没有用过,php官网提到:php最具争议的变化是ph...

在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开始状态:

实例代码如下:

  1. // 当用户合法的时候,赋值 $flag = true 
  2. if (is_user()) { 
  3.     $flag= true; 
  4. // 由于并没有事先把 $flag初始化为 false, 
  5. // 当 register_globals 打开时,可能通过GET user.php?flag=1 来定义该变量值 
  6. // 所以任何人都可以绕过身份验证 
  7. if ($flag) { 
  8.     include "/highly/sensitive/data.php"
  9. ?>   

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

 
分享到:
MEMCACHE做为PHP的SESSION HANDLER
在为php安装了memcache模块后查看该模块的说明文件,发现他还可以直接作为php的session handler使用,而无需做做额外的编码处理.设置方法很简单,只要修改php.ini中的以下键的值: session.save_handler = memcache  session.save_path = 'tcp://192.168.0.1:11211'  #有多个时直接用","分隔即可.要测...
PHP.ini中文配置说明
本文章来给大家介绍PHP.ini中文配置说明,希望有需要了解php.ini配置文件的同学不防进入参考。 php.ini中文配置说明 警告:此配置文件是对于新安装的PHP的默认设置.默认情况下,PHP使用此配置文件安装,此配置针对开发目的,并且*不是*针对生产环境,基于一些安全方面的考虑,在你的网站上线之前,请考虑使用php.ini-recom...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……