【问题标题】:checkmarx Client Potential XSS fixcheckmarx 客户端潜在的 XSS 修复
【发布时间】:2021-08-04 13:26:06
【问题描述】:

checkmarx 扫描后,我们得到了关于客户端潜在 XSS 的报告和 试图修复它

我们已经尝试了以下实用程序来对内容进行编码,但没有一个有效

https://github.com/cure53/DOMPurify
https://github.com/ESAPI/node-esapi/
https://www.npmjs.com/package/xss-filters

报告的问题代码

$(element).after("<label class='error' style='color: red;'>&nbsp;&nbsp;&nbsp;"+$ESAPI.encoder().encodeForHTML($(error).text())+"</label>");

我知道应该小心处理向 html 组件注入变量,但我不知道如何满足 checkmarx 要求。

希望有经验的人可以帮忙

谢谢,

【问题讨论】:

    标签: jquery xss checkmarx


    【解决方案1】:

    Checkmarx 看不到 ESAPI 正在做什么,这可能是误报。如果错误包含&lt;&gt; 等字符,是否正确显示?

    避免使用连接创建 HTML 并改用 text() 方法可能更容易。然后你不需要编码。喜欢:

    $(element)
        .after($("<label class='error' style='color: red;'>").text($(error).text()));
    

    【讨论】:

    • 感谢您的回复,我确认字符已正确编码,但您的建议代码仍未通过 checkmarx。我想知道 checkmarx 如何测试和报告这个问题
    【解决方案2】:

    @fgb 提出的解决方案几乎是正确的。 Checkmarx 在创建 HTML 时似乎不像串联。

    以下代码可能不够好,但它通过了 checkmarx 测试

    var label = $("<label class='error' style='color: red;'>");
    label.text($(error).text());
    $(element).after(label);
    

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2022-04-11
      相关资源
      最近更新 更多