sql 注入字符的检测函数
自己写的一款sql注入检测函数,可以有效的检测用户post,get过来的参考进行过滤,有需要的朋友参考一下,代码如下:
- <?php
- /*sql 注入 字符的检测
- * 在所有用户输入的数据,post传参, get传参 都需要检测下
- * 如果有匹配到关键字 则 返回该关键字 否则返回false
- * 这个和敏感字符的检测不是一样的
- */
- function Filter_SQL($strData)
- {
- $strFilter=$blnFlag=$arrayFilter='';
- $strFilter="'|and|(|)|exec|insert|select|delete|update|count|*|%27|chr|mid|master|truncate|char|declare|union|or"; //需要过滤的字符,可以自己添,"|"是分隔符
- $blnFlag=false; //过滤标志,如果产生过滤,那么就是真
- $arr=explode("|",$strFilter);
- $str="";
- foreach($arr as $row)
- {
- $str.=preg_quote($row)."|";
- }
- $str=trim($str,"|");
- if(preg_match('/'.$str.'/i',$strData,$word))
- {//开源代码phpfensi.com
- return $word[0];
- }
- return false;
- }
- /*
- 测试
- $string="fasdf union ";
- echo Filter_SQL($string);
- */
- ?>