哈哈鱼
xss 漏洞

XSS 漏洞怎么防范

分享
  • Andrew 2 CISP-PTE CISM-WSE
    Andrew2 CISP-PTE CISM-WSE

    防范xss漏洞的措施:

    输入过滤

    有时候需要多次过滤 ,例如 < scrip < script > t >过滤掉 < script > 后还是 < script >,需要注意多个过滤器的先后次序。当多个过滤器一起生效时,有可能后进行的过滤导致前面的过滤失效。

    纯前端渲染

    在纯前端渲染中,我们会明确的告诉浏览器:下面要设置的内容是文本(.innerText),还是属性(.setAttribute),还是样式(.style)等等。浏览器不会被轻易的被欺骗,执行预期外的代码了。

    转义 HTML

    如果拼接 HTML 是必要的,就需要采用合适的转义库,对 HTML 模板各处插入点进行充分的转义。

    常用的模板引擎,如 doT.js、ejs、FreeMarker 等,对于 HTML 转义通常只有一个规则,就是把 & < > " ' / 这几个字符转义掉,确实能起到一定的 XSS 防护作用。

    标签和属性基于白名单过滤

    对于副文本编辑器来说,其产物本身就是 html 代码,所以没办法简单粗暴使用转义来处理,应该要对内容中的标签和属性,基于白名单进行过滤。(附 XSS 黑名单:DOM 中的内联事件监听器如onclick等、<a>标签的href属性、<script>标签、css 中的url功能)

  • 写回答