![](/img/trans.png)
[英]JSON.parse escaping for anti-XSS and any character insertion into html, attributes, and values from WebSockets
[英]Javascript implementation of anti-XSS escaping functions
OWASP XSS(跨站点脚本)预防速查表列出了通过适当地转义数据来防止XSS攻击的规则,并且包含指向这些转义方法的参考实现的链接,这些引用均以Java语言(HTML Escape,Attribute Escape,Javsacript Escape,CSS Escape,网址转义)。
在Javascript中是否有这些实现的任何实现,还是我必须“自己动手”?
更新:我的意思是Javascript在浏览器中运行。 例如,用于转义使用jQuery html()方法呈现的文本(尽管text()当然更安全),或转义使用模板引擎(例如EJS)呈现的数据。
UPDATE2: 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的可憎性),因此两者均未提供转义。 您可以简单地预先编写代码或样式,然后调用适当的函数或设置适当的类。
encodeURI
和encodeURIComponent
可用于编码URI或其组件。
您可以使用js-xss库。 对我来说,它可以与我用来将脚本注入HTML的测试用例一起工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.