0

我们开发的一个系统通过 Veracode 运行以发现安全漏洞。它突出显示了在模态对话框中弹出视图的 javascript 函数上的“网页中与脚本相关的 HTML 标记的不正确中和(基本 XSS)”项。该视图没有数据条目,也不显示以前输入的数据。

问题是交易ID吗?它是系统生成的并保存在一个隐藏的字段中。如果是这样,HTML.Encode()应用于transactionID视图的剃刀语法(由 $.get 返回)是否足以缓解此问题?事实上,Veracode 似乎.html()在我们的 javascript 中每次使用都会引发这个错误。从JShtml()文件中提取出来是一项艰巨的任务。我将不胜感激任何人都可以提供的帮助。

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');
        }
    );      
}
4

1 回答 1

0

它给你一个警告,因为潜在的不受信任的数据被用来设置带有原始标记的 HTML 元素。

是的,如果这是内部唯一的变量,您应该对事务 ID 服务器端进行 HTML 编码data

于 2015-10-20T16:48:57.270 回答