PHP POST, GET 参数过滤,预防sql注入函数


 

1、 实际过滤函数 可适当修改其中的正则表示式

复制代码
 1 static public function filterWords(&$str)
 2  { 3 $farr = array( 4 "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU", 5 "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU", 6 "/select\b|insert\b|update\b|delete\b|drop\b|;|\"|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|dump/is" 7  ); 8 $str = preg_replace($farr,'',$str); 9 $str = strip_tags($str); 10 return $str; 11 }
复制代码

2、调用此函数 过滤参数中的value值

复制代码
static function filterParams(&$params, $tmp = array())
    {
        if(is_array($params)){ foreach($params as $k => &$v){ if(is_array($v)) { self::filterParams($v); }else{ self::filterWords($v); } } } else { $arr[] = self::filterWords($params); } return $params; }
复制代码

3、调用此函数,过滤参数中的key值

复制代码
 1 static  function filterKeys($arr, $subKey, &$myArr)
 2  { 3 foreach($arr as $k=>$v) 4  { 5 if(is_array($v)) 6  { 7 $filterKey = self::filterWords($k); 8 self::filterKeys($v, $filterKey, $myArr); 9 10 }else{ 11 $filterKey = self::filterWords($k); 12 if($subKey != '') 13  { 14 $myArr[$subKey][$filterKey] = $v; 15 }else{ 16 $myArr[$filterKey] = $v; 17  } 18  } 19  } 20 21 }
复制代码

转自 https://www.cnblogs.com/zakun/p/5603522.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM