猿问

ajax响应返回html响应(XSS veracode)

function viewAcc() {

    var errorMsg = "";

    var result = true;

    $(".errorView").hide();

    var accNum = document.getElementById('custAccNum').value;

    var accType = document.getElementById('custAccType').value;

    $("#overlayPopup").show();

    $.ajax({

        url : '<attribute:resourceURL/>',

        data : {

            "custNo" : accNum ,

            "custType" : accType 

        },

        success : function(data) {

            if (data == 'CUS_ACC') {

                window.location = "/cust/account/c";

            } else {

                $("#overlayPopup").hide();

                //display warning

                $(".errorView").show();

                $(".errorView").html(data); // <--- XSS line

                e.preventDefault();

            }

        },

        cache : false,

        dataType : 'text',

        error : function(error, textStatus, errorThrown) {

            alert('error in ajax call: ' + textStatus);

            console.log('error in ajax call: ' + textStatus);

            window.location = "/cust/account/c/lookup";

        },

        timeout : ajaxTimeOutMilliSeconds

    });


}

因此,veracode指出我在$(".errorView").html(data); 如何解决此问题上有问题。如果我只是将其转换为文本,它是否会像html一样显示在客户端上?


UYOU
浏览 214回答 2
2回答

慕莱坞森

不要盲目相信那些声称您容易受到XSS攻击的工具。仅当XSS的值不可信时,您才有遭受XSS的风险data。由于它来自您自己的服务器,因此您应该已经对XSS问题的数据进行了清理,然后再将其发送到对Ajax请求的响应中。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答