Veracode 扫描:jQuery html 方法显示网页问题中脚本相关 HTML 标签的不当中和
Veracode Scan: jQuery html method showing Improper Neutralization of Script-Related HTML Tags in a Web Page issue
Veracode 在下面的行中指出了 网页中与脚本相关的 HTML 标记的不当中和(基本 XSS) 问题。
$('#SummaryDiv').html(data);
$.ajax({
url: 'Target_URL',
type: 'GET',
datatype: "json",
traditional: true,
cache: false
}).done(function (data) {
$('#SummaryDiv').html(data);
我正在通过 ajax 调用将 MVC 视图结果绑定到 DIV。检查了 Whosebug 中的文章,但没有运气。解决此 veracode 问题的可能解决方案是什么。
所以您要将 json 直接放入 div?我想这意味着您不希望响应包含任何要呈现的 HTML,而是希望按原样显示 JSON。
所以解决方法是使用 jQuery 的 .text() 而不是 .html()
编辑:如果您需要将其渲染为 HTML,您应该先使用 DOMPurify 对其进行清理。
我已阅读以下文章并通过对从 MVC ViewResult 收到的 html 进行编码解决了问题。
DOM 基于 XSS 预防作弊 Sheet
https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.md
OWASP 企业安全 API (ESAPI)
https://github.com/ESAPI/owasp-esapi-js/blob/28b2767731e672c620b86701a9f98f235951392b/README.md
ESAPI 编码 un-trusted 内容的方法:$ESAPI.encoder().encodeForHTML(content)
Veracode 在下面的行中指出了 网页中与脚本相关的 HTML 标记的不当中和(基本 XSS) 问题。
$('#SummaryDiv').html(data);
$.ajax({
url: 'Target_URL',
type: 'GET',
datatype: "json",
traditional: true,
cache: false
}).done(function (data) {
$('#SummaryDiv').html(data);
我正在通过 ajax 调用将 MVC 视图结果绑定到 DIV。检查了 Whosebug 中的文章,但没有运气。解决此 veracode 问题的可能解决方案是什么。
所以您要将 json 直接放入 div?我想这意味着您不希望响应包含任何要呈现的 HTML,而是希望按原样显示 JSON。 所以解决方法是使用 jQuery 的 .text() 而不是 .html()
编辑:如果您需要将其渲染为 HTML,您应该先使用 DOMPurify 对其进行清理。
我已阅读以下文章并通过对从 MVC ViewResult 收到的 html 进行编码解决了问题。
DOM 基于 XSS 预防作弊 Sheet https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.md
OWASP 企业安全 API (ESAPI) https://github.com/ESAPI/owasp-esapi-js/blob/28b2767731e672c620b86701a9f98f235951392b/README.md
ESAPI 编码 un-trusted 内容的方法:$ESAPI.encoder().encodeForHTML(content)