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;'> "+$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);
在 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;'> "+$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);