您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

PHP漏洞详解

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 01:30 点击:

  几个重要的php.ini选项

  Register Globals

  php>=4.2.0,php.ini的register_globals选项的默认值预设为Off,当register_globals的设定为On时,程序可以接收来自服务器的各种环境变量,包括表单提交的变量,而且由于PHP不必事先初始化变量的值,从而导致很大的安全隐患.

  例1:

  //check_admin()用于检查当前用户权限,如果是admin设置$is_admin变量为true,然后下面判断此变量是否为true,然后执行管理的一些操作

  //ex1.php

  

  if (check_admin())

  {

  $is_admin = true;

  }

  if ($is_admin)

  {

  do_something();

  }

  ?>

  这一段代码没有将$is_admin事先初始化为Flase,如果register_globals为On,那么我们直接提交 http://www.sectop.com/ex1.php?is_admin=true,就可以绕过check_admin()的验证

  例2:

  //ex2.php

  

  if (isset($_SESSION["username"]))

  {

  do_something();

  }

  else

  {

  echo "您尚未登录!";

  }

  ?>

  //ex1.php

  

  $dir = $_GET["dir"];

  if (isset($dir))

  {

  echo "

";

 

  system("ls -al ".$dir);

  echo "

";

 

  }

  ?>

  

\

 

  mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候

  //ex2.php

  

  $var = "var";

  if (isset($_GET["arg"]))

  {

  $arg = $_GET["arg"];

  eval("$var = $arg;");

  echo "$var =".$var;

  }

  ?>

  

\

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • PHP测试
      • 十天学会php之第六天
      • 几种显示数据的方法的比较
      • 使用xmlhttp为网站增加域名查询功能
      • PHP+MYSQL+Javascript数据库查询结果的动态显示
      • 查找数组中指定键名的值
      • 用redis实现跨服务器session
      • 用新浪微博接口发送图片微博失败的原因
      • smarty局部缓存技术[源码分析]
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1