sql 注入字符的检测函数

五月 24, 2019 | views
Comments 0

自己写的一款sql注入检测函数,可以有效的检测用户post,get过来的参考进行过滤,有需要的朋友参考一下,代码如下:

  1. <?php 
  2. /*sql 注入 字符的检测 
  3. * 在所有用户输入的数据,post传参, get传参 都需要检测下   
  4. * 如果有匹配到关键字 则 返回该关键字  否则返回false 
  5. * 这个和敏感字符的检测不是一样的 
  6. */ 
  7. function Filter_SQL($strData)  
  8.  $strFilter=$blnFlag=$arrayFilter=''
  9.  
  10.  $strFilter="'|and|(|)|exec|insert|select|delete|update|count|*|%27|chr|mid|master|truncate|char|declare|union|or"//需要过滤的字符,可以自己添,"|"是分隔符  
  11.  $blnFlag=false;   //过滤标志,如果产生过滤,那么就是真 
  12.  
  13.  $arr=explode("|",$strFilter);  
  14.  $str=""
  15.  
  16.  foreach($arr as $row
  17.  { 
  18.   $str.=preg_quote($row)."|"
  19.  }  
  20.  
  21.  $str=trim($str,"|");  
  22.  
  23.  if(preg_match('/'.$str.'/i',$strData,$word)) 
  24.  {//开源代码phpfensi.com 
  25.   return $word[0];  
  26.  } 
  27.  
  28.  return false; 
  29.  
  30. /* 
  31. 测试 
  32. $string="fasdf union "; 
  33. echo Filter_SQL($string); 
  34. */ 
  35.  
  36. ?> 



zend