从Checkmarx标记的Jquery追加方法中缓解客户端Dom存储的Xss

Mitigate Client Dom Stored Xss from Jquery append method flagged by Checkmarx

提问人:Srikant Sahu 提问时间:10/28/2022 最后编辑:Srikant Sahu 更新时间:4/24/2023 访问量:1493

问:

对于我的项目,我有 Jquery 2.2.0 版本,最近为该项目添加了 Checkmarx 扫描。

我正在尝试找出“客户端DOM存储XSS”错误的解决方案。在将 html 附加到节点之前,我已经使用 DomPurify 库进行了 html 清理,但没有运气!任何关于Checkmarx如何标记这个或任何推荐/接受的库进行checkmarx的“html清理”的建议都会很棒。下面是代码片段。

应用程序的函数将不受信任的数据嵌入到生成的输出中,并在 241 行处追加 示例 .js。这些不受信任的数据直接嵌入到输出中,而无需进行适当的清理或 编码,使攻击者能够将恶意代码注入输出。

....
241. success: function (data) {
//The htmlStr is formed from the data returned by ajax call. There are some concatenation and simple business logic before its added to a DOM.
....
256.
jQuery(row).find('.MyClass').append(DOMPurify.sanitize(htmlStr, { SAFE_FOR_JQUERY: true }));

它无法识别 DOMPurify.sanitize。也尝试过 $.parseHTML()

JavaScript jQuery XSS、 Checkmarx Dompurify

评论

0赞 NathanL 11/6/2022
请注明您的Checkmarx版本和修补程序。可能需要通过查询优化来添加 DOMPurify,具体取决于您使用的版本。
0赞 santoshe61 6/1/2023
@srikant你有什么解决方案吗?我也面临同样的问题。
0赞 Srikant Sahu 6/12/2023
是的,@santoshe61 - 这是一个奇怪的解决方案。使用不同的变量,例如:JQ = jQuery.noConflict()...然后使用 JQ

答: 暂无答案