標籤:
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 }
PHP POST, GET 參數過濾,預防sql注入函數