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

180it 2020-01-16 PM 1249℃ 0条

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;
                }
            }
        }

    }
支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

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