Veracode Scan:jQuery html方法,显示网页问题中与脚本相关的HTML标记未正确中和

问题描述

Veracode在下一行中指出了网页(Basic XSS)中与脚本相关的HTML标记的不正确中和问题。

$('#SummaryDiv')。html(数据);

$.ajax({
            url: 'Target_URL',type: 'GET',datatype: "json",Traditional: true,cache: false
        }).done(function (data) {               
            $('#SummaryDiv').html(data);

我通过ajax调用将MVC视图结果绑定到DIV。检查了stackoverflow中的文章,但没有运气。解决此Veracode问题的可能解决方案是什么。

解决方法

所以您要使用json并将其直接放入div?我想这意味着您不希望响应包含要呈现的任何HTML,而是希望按原样显示JSON。 因此解决方法是使用jQuery的.text()而不是.html()

编辑:如果需要将其呈现为HTML,则应首先使用DOMPurify对其进行清理。

,

我关注了以下文章,并通过对从MVC ViewResult接收到的html进行编码来解决了该问题。

基于DOM的XSS预防速查表 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方法: $ ESAPI.encoder()。encodeForHTML(content)