为什么checkmarx使用DOMPurify后没有通过XSS漏洞?

问题描述 投票:0回答:1

我正在使用 Checkmarx 扫描项目中的漏洞,我无法在 JS 文件中使用 DOMPurify 清除 XSS 漏洞。

示例代码:

function purifyDOM(tag){
    var dom_purify = DOMPurify.sanitize(tag, {ALLOWED_TAGS: ['tr', 'th', 'td', 'a', 'div', 'table', 'option', 'html', 'i']})
    return dom_purify
}

function attribute_render(data){
   var attribute = data['attribute_path']
   var cleaned_tag = purifyDOM(attribute)
   $('#attributename').html(cleaned_tag)
}

我在扫描报告中看到以下信息。

客户端 DOM 存储的 XSS\路径 11:

应用程序的 attribute_render 在生成的 html 输出中嵌入不受信任的数据,位于 webapp/ktc_app/static/assets/js/customjs.js 的第 1233 行。这些不受信任的数据未经适当的清理或编码就直接嵌入到输出中,从而使攻击者能够将恶意代码注入到输出中。

这是为什么呢?我可以继续使用其他方法来清除 XSS 漏洞吗?

javascript html xss checkmarx dompurify
1个回答
0
投票

我可能会认为这是误报,如果您有访问权限,可以将其标记为“不可利用”以隐藏它以供将来扫描。 Checkmarx 不错,但并不完美,有时没有考虑具体情况。

我注意到在版本 9.4.5 的发行说明中,它们显示了对与 DomPurify 相关的误报的更好处理,这可能是一个已知问题。

https://checkmarx.com/resource/documents/en/34965-81296-release-notes-for-engine-pack--ep--9-4-5-patches.html

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.