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

PHP POST GET 预防sql注入函数

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

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

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值

static function filterKeys($arr, $subKey, &$myArr)
{
foreach ($arr as $k => $v) {
if (is_array($v)) {
$filterKey = self::filterWords($k);
self::filterKeys($v, $filterKey, $myArr);

} else {
$filterKey = self::filterWords($k);
if ($subKey != '') {
$myArr[$subKey][$filterKey] = $v;
} else {
$myArr[$filterKey] = $v;
}
}
}

}

posted @ 2016-06-21 14:26  zakun  阅读(8951)  评论(0)    收藏  举报
返回顶部