XSS攻击过滤

482 阅读1分钟

入参字符串过滤

部分Xss攻击是携带在请求中进入后台的,因此可以在请求入参中进行过滤,移除一些特殊字符和标签信息

function fixURLRule(params) {
       if(typeof params !== 'string') {
           console.log('fixURLRule params not String')
           return
       }
       // 统一转小写
       var url = params.toLocaleLowerCase()
       // 敏感字符串
       var xssStr = ['<', '>', 'alert', 'script', 'prompt']
       // base64 解码
       var base64Str = xssStr.map(item => window.btoa(item))
       // 转换base
       xssStr = xssStr.concat(base64Str)
       url = encodeURIComponent(decodeURIComponent(url))
       xssStr.forEach(xssKey => {
           var regexp = new RegExp(`${xssKey}`, 'gim')
           url = url.replace(regexp, '')
       })
       // 翻转成非base64
       url = decodeURIComponent(url)
       return url
}