我正在使用 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 漏洞吗?
我可能会认为这是误报,如果您有访问权限,可以将其标记为“不可利用”以隐藏它以供将来扫描。 Checkmarx 不错,但并不完美,有时没有考虑具体情况。
我注意到在版本 9.4.5 的发行说明中,它们显示了对与 DomPurify 相关的误报的更好处理,这可能是一个已知问题。