当前位置: 首页 > 知识库问答 >
问题:

Veracode Scan:jQuery html方法显示Web页面中与脚本相关的html标记中和不当

佴英奕
2023-03-14

Veracode在下面一行中指出了在Web页面(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问题的可能方法是什么。

共有2个答案

唐向荣
2023-03-14

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

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

司马彦
2023-03-14

我遵循了下面的文章,并通过对从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)

 类似资料: