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

Posted

技术标签:

【中文标题】如何修复 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 【发布时间】:2019-05-05 20:50:12 【问题描述】:

所以,当我们的 Web 应用程序被扫描 Veracode 时,我发现了许多跨站点脚本缺陷,

“网页中与脚本相关的 html 标签的不正确中和(基本 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)本身不安全? 如果是的话,我该如何解决? 我将不胜感激。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何修复 Veracode - 跨站点脚本 - CWE ID 80 - 基本 XSS - 在 .each 函数中使用 $(item)的主要内容,如果未能解决你的问题,请参考以下文章

如何修复JSP表达式标记中的跨站点脚本(XSS)

请教关于使用appscan 检测"基于DOM的跨站点脚本"漏洞修复问题

如何修复 Veracode CWE 117(不正确的日志输出中和)

通过 URL 进行跨站点脚本

漏洞风险提示Kibana跨站点脚本漏洞通告

如何防止跨站点脚本攻击