如何修复 Veracode - 跨站点脚本 - CWE ID 80 - 基本 XSS - 在 .each 函数中使用 $(item)

How to fix Veracode - Cross site scripting - CWE ID 80 - Basic XSS - use of $(item) in .each function

因此,当我们的 Web 应用程序被扫描 Veracode 时,我发现了许多跨站点脚本漏洞,

"Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)"(CWE ID 80).

而且,由于我们存在的一些缺陷,我无法弄清楚如何解决这个特殊情况。 下面是我的一段代码 -

$(".ui-dialog-buttonset .ui-button:visible").each(function(index, item) {
    var label = $(item).text();
    if (label == "Save" || label == "Create")
        $(item).click();
});

我可以看到 $(item).text();$(item).click(); 行报告的缺陷。
我知道,对于文本,我可以使用 DOMPurify.sanitize 之类的东西来清理字符串。
但是,我不明白,为什么 veracode 报告 $(item).click(); 是因为$(item)本身不安全吗?
如果是,那么我该如何解决? 如果能提供任何帮助,我将不胜感激。

好的,已从 DOMPurify 库中找到修复程序。 您也可以使用 DOMPurify.
清理 DOM 元素 所以,下面的代码有效 -
item = DOMPurify.sanitize(item, {SAFE_FOR_JQUERY:true});