需要注意的几个PHP漏洞小结

yipeiwu_com7年前PHP代码库
需要注意的几个PHP漏洞
几个重要的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中将一个字符串部分字符用星号*替代隐藏的实现代码

有时候我们在开发中会遇到这样一种情况,例如:显示手机号我们需要将中间4位遮挡掉,一般使用“*”号代替,或是显示身份证号码是为了保护个人信息也同样需要遮挡掉4位,故可用到下列方式、代码进行...

php中用于检测一个地理IP地址是否可用的代码

复制代码 代码如下: /******************************************** * * 函数名:curl_string ($url,$proxy) *...

PHP设计模式之简单工厂和工厂模式实例分析

本文实例讲述了PHP设计模式之简单工厂和工厂模式。分享给大家供大家参考,具体如下: 工厂模式是创建型模式的一种,分为简单工厂模式,工厂模式,抽象工厂模式,简单工厂可以称之为工厂模式的一个...

php类的定义与继承用法实例

本文实例讲述了php类的定义与继承用法。分享给大家供大家参考。具体如下: <?php /* * class */ class people { public...

PHP 事务处理数据实现代码

复制代码 代码如下:public function insertUser ($userArray){ foreach ($userArray as $key => $value)...