在 MVC 中使用 .html() 显示对话框会在 Veracode 中出现 XSS 错误
Using .html() in MVC to display dialog gives XSS error in Veracode
我们开发的系统 运行 通过 Veracode 解决安全漏洞。它在 javascript 功能上突出显示了 "Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)" 项,该功能会在模态对话框中弹出一个视图。该视图没有数据条目,也不显示以前输入的数据。
交易ID有问题吗?它由系统生成并保存在隐藏字段中。如果是这样,HTML.Encode()
应用于视图的剃刀语法(由 $.get 返回)中的 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 元素。
是的,如果这是 data
中的唯一变量,您应该 HTML 编码服务器端交易 ID。
我们开发的系统 运行 通过 Veracode 解决安全漏洞。它在 javascript 功能上突出显示了 "Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)" 项,该功能会在模态对话框中弹出一个视图。该视图没有数据条目,也不显示以前输入的数据。
交易ID有问题吗?它由系统生成并保存在隐藏字段中。如果是这样,HTML.Encode()
应用于视图的剃刀语法(由 $.get 返回)中的 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 元素。
是的,如果这是 data
中的唯一变量,您应该 HTML 编码服务器端交易 ID。