JS 特殊字段过滤
var str1 = str.replace(/[\'\"\\\/\b\f\n\r\t]/g, ''); // 去掉转义字符 
var str2= str.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\L\<\>\?]/g, ''); //去掉特殊字符return str2;
 
var containSpecial = RegExp(/[(\ )(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\-)(\_)(\+)(\=)(\[)(\])(\{)(\})(\|)(\\)(\;)(\:)(\')(\")(\,)(\.)(\/)(\<)(\>)(\?)(\)]+/); 
return ( containSpecial.test(s) ); 判断是否含有
var filterRule= /[^0-9a-zA-Z_]/g; 
var judge= filterRule.test(str); //判断传进来的数据是否含有特殊字符。test函数返回匹配结
KOA2应用一下
/tool/security.js
function stripScript(s){ 
    var pattern = new RegExp("`~!@#$^&*()=|<>/?~!@#¥……&*()——|【】‘”“。、?]") 
    /*
    var rs = ""; 
    for (var i = 0; i < s.length; i++) { 
    rs = rs+s.substr(i, 1).replace(pattern, ''); 
    } 
    return rs; 
    */ 
    //敏感字符判别
    let rs = false
    if(pattern.test(s)){
        return rs 
    }
    return s
} 
module.exports = {defender,stripScript}
Index.js
app.use(async (ctx, next) => {
  try {
if(security.stripScript(ctx.request.body)==false){return error
    }
    await next()
    //console.log(ctx.response)
    //console.log("==================================")
  } catch (error) {
    ctx.body = {
      status: "error",
      message: error.message
    }
  }
})

                
            
        
浙公网安备 33010602011771号