繁体   English   中英

反XSS转义功能的JavaScript实现

[英]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的可憎性),因此两者均未提供转义。 您可以简单地预先编写代码或样式,然后调用适当的函数或设置适当的类。

encodeURIencodeURIComponent可用于编码URI或其组件。

您可以使用js-xss库。 对我来说,它可以与我用来将脚本注入HTML的测试用例一起工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM