checkmarx 客户端潜在的 XSS 修复

checkmarx Client Potential XSS fix

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

我们已经尝试使用以下实用程序对内容进行编码,但 none 有效

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 要求。

希望有经验的大神帮帮忙

谢谢,

Checkmarx 没有看到 ESAPI 正在做什么,这可能是误报。如果包含 <> 之类的字符,错误是否正确显示?

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

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

@fgb 提出的方案基本正确。 Checkmarx 在创建 HTML.

时似乎不像连接

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

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