服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - PHP教程 - 需要注意的几个PHP漏洞小结

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

2019-12-25 15:28PHP100 PHP教程

几个PHP漏洞小结,从事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 ""; 
  } 
  ?> 


需要注意的几个PHP漏洞小结 
 mixed eval(string code_str) //eval注入一般发生在攻击者能控制输入的字符串的时候 
  //ex2.php 

复制代码代码如下:

   
  $var = "var"; 
  if (isset($_GET["arg"])) 
  { 
  $arg = $_GET["arg"]; 
  eval("$var = $arg;"); 
  echo "$var =".$var; 
  } 
  ?> 

 

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

延伸 · 阅读

精彩推荐