我们开发的一个系统是通过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
。