反XSS转义函数的Javascript实现

Javascript implementation of anti-XSS escaping functions

本文关键字:Javascript 实现 函数 XSS 转义      更新时间:2023-09-26

OWASP XSS(跨站点脚本)预防备忘单列出了通过适当地转义数据来防止XSS攻击的规则,其中包含指向Java语言中这些转义方法的参考实现的链接(HTML转义、属性转义、Javsacrept转义、CSS转义、URL转义)。

在Javascript中是否有这些实现,或者我必须"自己滚动"?

更新:我指的是在浏览器中运行的Javascript。例如,对于转义使用jQueryhtml()方法渲染的文本(当然text()更安全),或者转义使用模板引擎(如EJS)渲染的数据。

更新2:ESAPI JavaScript似乎是我想要的,尽管它仍然只是"Alpha质量"

由于您倾向于在(客户端)JavaScript中使用DOM,因此不需要HTML和HTML属性转义。例如,给定不可信输入input

var el = document.createElement('div');
el.setAttribute('title', input);
el.appendChild(document.createTextNode(input));

是完全安全的,因为您从一开始就没有构建(序列化)HTML。

如果您正在从JavaScript代码中编写自定义JavaScript或CSS,则说明您做错了什么(包括使用document.write或一些数据URI脚本src可憎的东西),因此两者都没有提供转义。您可以简单地预先编写代码或样式,然后调用适当的函数或设置适当的类。

CCD_ 3和CCD_。

您可以使用js-xss库。对我来说,它适用于我一直用来将脚本注入HTML的测试用例。