当前位置: 首页 > 知识库问答 >
问题:

JavaScript库或Esapi防止XSS转义和对不可信数据进行编码

谢豪
2023-03-14

我已经看到了许多堆栈溢出的答案,但它们没有在标准库中提供完整的规范化/编码解决方案,我可以编写静态测试,以确保开发人员正在使用该库。

是否有一个esapi或类似的“轻”库,我可以只用于JavaScript?

我已经看到了OWASP Esapi和jQuery编码器插件https://github.com/chrisisbeef/jquery-encoder和SalesForce编码器https://github.com/SalesForce/secure-filters

共有1个答案

何安宜
2023-03-14

是否有模板框架在使用?理想情况下,您应该使用像React这样的框架,它在默认情况下处理编码。然后您所要做的就是确保dagerouslySetInnerHTML没有被使用(或安全使用)。

添加不受信任的CSS被认为是不安全的,除非通过白名单验证。通过将数据分配给element.textContent或使用jQuery的$.text(),可以安全地将不受信任的数据添加到标记中。可以使用element.setAttribute或$.attr()将不受信任的数据添加到不是事件处理程序的HTML属性中。对于双重上下文,如脚本标记内部(html上下文中的javascript上下文)或javascript事件处理程序属性(html属性上下文中的javascript上下文),您必须确保对两者进行编码。

对于HTML内容,您可以选择使用DOMPurify来删除任何活动内容,但如果需要允许不可信的HTML片段,则更有效。

 类似资料:
  • 在其他一些论坛中,提到使用HTML消毒剂。什么是正确的方法,请…

  • 如何实现防止XSS的Java ESAPI? 除了在构建路径中添加ESAPI jar之外,还需要其他配置吗? 提前感谢您的回答。

  • 问题内容: 我有一些用户输入。在我的代码中,我确保对以下符号进行转义: OWASP指出还有更多的字符可以转义。 对于属性,我做了另一种转义: 这样可以确保所有属性都用“括起来。”这样就可以确定自己的html属性,而不是HTML本身。 问题答案: 我也使用OWASP(ESAPI)库,以转义不同显示类型的字符串,请使用: HTML(假设为jsp) 更新 ( 2017 ) 由于ESAPI编码器被认为是旧

  • 我正在研究基于DOM的XSS预防的所有OWASP规则,并试图充分理解每个规则。我对这条规则有点困惑: “规则#2-JavaScript在将不可信数据插入执行上下文中的HTML属性子上下文之前转义” 也许这个问题也可以表述为“在OWASP的基于DOM的XSS备忘单的上下文中,html转义和javascript转义之间有什么区别?请给出javascript转义的示例。

  • 以下是原代码 在相同的Jsp中 我做了一些修改,在lib中包括esapi-2.1.0.jar,在类路径中包括esapi.properties,validation.properties。然后对scriplet代码进行以下更改以修复上面的代码