星星博客站

PHP过滤xss攻击脚本

编辑:php技术    日期:2021-05-19      



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|XSS|SCRIPT');
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)), JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
    }
} elseif (is_array($value)) {
    //如果参数值是数组则递归遍历判断
    foreach ($value as $v) {
    sqlInj($v);
}
}
}

$aa = $_SERVER['PHP_SELF'];
$bb = substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/')+1);
//var_dump($bb);die;
if($bb === 'notify' || $bb ==='alipay_notify' || $bb === 'notify/' || $bb ==='alipay_notify/' || $bb === 'alipay_return' || $bb ==='alipay_return/'){
//    var_dump($bb);die;
}else{
    //过滤请求参数
    foreach ($_REQUEST as $key => $value) {
        sqlInj($value);
    }
}


上一篇:
下一篇: