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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM