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

Javascript Veracode Scan:jQuery html方法显示网页问题中与脚本相关的html标记的不正确中和,javascript,jquery,ajax,xss,veracode,Javascript,Jquery,Ajax,Xss,Veracode,Veracode在下面一行指出了Web页面(基本XSS)中与脚本相关的HTML标记无效的问题 $('#SummaryDiv').html(数据) 我通过ajax调用将MVC视图结果绑定到DIV。检查了stackoverflow中的物品,但没有运气。解决这个veracode问题的可能的解决方案是什么。那么您将使用json并将其直接放入div中?我猜这意味着您不希望响应包含任何要呈现的HTML,而是希望JSON按原样显示。 因此,解决方法是使用jQuery的.text()而不是.html() 编辑:

Veracode在下面一行指出了Web页面(基本XSS)中与脚本相关的HTML标记无效的问题

$('#SummaryDiv').html(数据)


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

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


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

我已经阅读了以下文章,并通过对从MVC ViewResult接收的HTML进行编码解决了这个问题

基于DOM的XSS预防备忘表

OWASP企业安全API(ESAPI)


编码不可信内容的ESAPI方法:$ESAPI.encoder().encodeForHTML(内容)

我总是从控制器方法接收html。action方法返回html内容。如果它应该返回html,那么为什么要使用
数据类型:“json”
?目标URL是否由最终用户以某种方式控制?糟糕,预期的类型仅为html。我忘记更新了。
$.ajax({
            url: 'Target_URL',
            type: 'GET',                
            datatype: "json",
            traditional: true,
            cache: false
        }).done(function (data) {               
            $('#SummaryDiv').html(data);