在MVC中使用.html()来显示对话框会在Veracode中出现XSS错误



我们开发的一个系统是通过Veracode运行安全漏洞的。它突出显示了一个"网页中与脚本相关的HTML标签的不当中和(基本XSS)"。项,用于在模态对话框中弹出视图。视图没有数据条目,也不显示以前输入的数据。

事务id有问题吗?它是系统生成并保存在一个隐藏的领域。如果是这样,那么在视图的razor语法(由$.get返回)中将HTML.Encode()应用于transactionID是否足以缓解这个问题?事实上,Veracode似乎在我们的javascript中每次使用.html()都会引发这个错误。从JS文件中提取html()是一项太大的任务。我将感激任何人能给予的任何帮助。

var $dialog = $('<div></div>');
$dialog.dialog(
{ 
    autoOpen: false,
    height: 300,
    width: 500,
    modal: true,
    title: ''
});
DisplayModalStatement($dialog);
function DisplayModalStatement(modalDialog) {           
    var transactionid = $('#TransactionId').val();
    $.get($.globals.appActionRoot + '/StatementDialog',
        { transactionId: transactionid, wizardType: GetWizardType() }, 
        function (data) {
              modalDialog.html(data);
              modalDialog.dialog('open');
        }
    );      
}

当潜在的不可信数据被用来设置带有原始标记的HTML元素时,它会给你一个警告。

是的,你应该HTML编码事务ID服务器端,如果这是唯一的变量在data

最新更新