tp框架防sql注入

在入口的index.php中写入方法

function sqlInj($value) {
    //过滤参数
    $arr = explode('|', 'UPDATEXML|UPDATE|WHERE|EXEC|INSERT|SELECT|DELETE|COUNT|CHR|MID|MASTER|TRUNCATE|DECLARE|BIND|DROP|CREATE| EXP |EXP%| OR |XOR| LIKE |NOTLIKE|NOT BETWEEN|NOTBETWEEN|BETWEEN|NOTIN|NOT IN|CONTACT|EXTRACTVALUE|LOAD_FILE|INFORMATION_SCHEMA|outfile|%20|into|union');
    if (is_string($value)) {//值为字符串
        foreach ($arr as $a) {
            //判断参数值中是否含有SQL关键字,如果有则跳出
            /*if (stripos($value, $a) !== false) exit(json_encode(array('status' > -1, 'info' == '参数错误,含有敏感字符' . $a, 'data' => array($a)), 0));*/
            if(strpos($value,$a) !== false)
            {
                $msg['status'] = '-1';
                $msg['info'] = '参数错误,含有敏感词字符'.$a;
                exit(json_encode($msg));
                //exit('参数含有敏感词字符'.$a);
                //exit(json_encode(['status'=> '-1','info'=>'参数错误,含有敏感词字符'.$a]));
            }
        }
    } elseif (is_array($value)) {
        //如果参数值是数组则递归遍历判断
        foreach ($value as $v) {
            sqlInj($v);
        }
    }
}

调用方法:

$current_url = $_SERVER['PHP_SELF'];

sqlInj($current_url);

if(!empty($_REQUEST))//传参不为空的情况过滤特殊字符串
{
  sqlInj($_REQUEST);
}
© 版权声明
THE END
喜欢就支持一下吧
点赞16
分享
评论 抢沙发
chelsialo的头像孙先森资源|专注优质网络资源教程分享孙先森资源教程

昵称

取消
昵称表情代码图片