OWASP XSS (Cross Site Scripting) Prevention Cheat Sheet列出了通过适当地转义数据来防止XSS攻击的规则,并包含指向这些转义方法在Java语言中的参考实现的链接(HTML转义、属性转义、Javsacript转义、CSS转义、URL转义)。
在Javascript中有没有这样的实现,或者我必须“自己滚”?
更新:我指的是在浏览器中运行Javascript。例如,用于转义使用text html()方法呈现的文本(当然jQuery ()更安全),或者转义使用模板引擎(如EJS )呈现的数据。
UPDATE2:ESAPI JavaScript似乎就是我想要的,尽管它仍然只是"Alpha质量“。
发布于 2015-12-10 19:53:20
由于您倾向于在(客户端) 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 ),因此没有为这两种代码提供转义。您可以简单地预先编写代码或样式,然后调用适当的函数或设置适当的类。
encodeURI和encodeURIComponent可用于对URI或其组件进行编码。
发布于 2018-09-12 21:30:06
您可以使用js-xss库。对我来说,它对我一直用来将脚本注入HTML的测试用例起作用。
https://stackoverflow.com/questions/34200757
复制相似问题