angularjs 应用程序中的 XSS 问题
XSS issue in the angularjs application
这是关于在其中一个输入及其描述字段中注入脚本标签(如下所示)。值保存良好并显示在网格中。
Go to this <script>window.alert('abc')</script> and fill out the FAFSA.
表单域:-
您可以在下面的屏幕截图中看到描述字段中的警报脚本是 运行。
模态实现(点击列表中的文档类型link执行):-
$rootScope.showNormalModal = function (message) {
var modalHtml = "<div class='modal-header'><button type='button' ng-click='cancel()' class='close' data-dismiss='modal' aria-label='Close'>" +
"<span aria-hidden='true'>×</span></button> " +
"<h4 class='modal-title' id='myModalLabel'><div>" +
"</div>" + message + "</h4></div>";
var modalInstance = $modal.open({
template: modalHtml,
controller: function ($scope, $modalInstance) {
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
}
});
}
});
如果输入参数有脚本标签,有一些操作,它不会在UI中原样显示,而是脚本在模态之前运行。
这里的预期行为是当我单击列表中的锚点时,它应该在弹出窗口中显示其描述。这里发生的事情是,在显示描述之前,由于脚本标记注入,我收到了警报 window。
如何避免在弹出窗口之前执行警报脚本。
下面附上所有截图。
列表页:-
警报Window:-
弹出窗口说明:-
提前致谢。
你能试试下面的代码吗
$rootScope.showNormalModal = function (message) {
var modalHtml = "<div class='modal-header'><button type='button' ng-click='cancel()' class='close' data-dismiss='modal' aria-label='Close'>" +
"<span aria-hidden='true'>×</span></button> " +
"<h4 class='modal-title' id='myModalLabel'><div>" +
"</div><div ng-bind=\"message\"></div></h4></div>";
var modalInstance = $modal.open({
template: modalHtml,
controller: function ($scope, $modalInstance, message) {
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
$scope.message = message;
},
resolve: {
message: function () {
return message;
}
}
});
}
这是关于在其中一个输入及其描述字段中注入脚本标签(如下所示)。值保存良好并显示在网格中。
Go to this <script>window.alert('abc')</script> and fill out the FAFSA.
表单域:-
您可以在下面的屏幕截图中看到描述字段中的警报脚本是 运行。
模态实现(点击列表中的文档类型link执行):-
$rootScope.showNormalModal = function (message) {
var modalHtml = "<div class='modal-header'><button type='button' ng-click='cancel()' class='close' data-dismiss='modal' aria-label='Close'>" +
"<span aria-hidden='true'>×</span></button> " +
"<h4 class='modal-title' id='myModalLabel'><div>" +
"</div>" + message + "</h4></div>";
var modalInstance = $modal.open({
template: modalHtml,
controller: function ($scope, $modalInstance) {
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
}
});
}
});
如果输入参数有脚本标签,有一些操作,它不会在UI中原样显示,而是脚本在模态之前运行。
这里的预期行为是当我单击列表中的锚点时,它应该在弹出窗口中显示其描述。这里发生的事情是,在显示描述之前,由于脚本标记注入,我收到了警报 window。
如何避免在弹出窗口之前执行警报脚本。
下面附上所有截图。
列表页:-
警报Window:-
弹出窗口说明:-
提前致谢。
你能试试下面的代码吗
$rootScope.showNormalModal = function (message) {
var modalHtml = "<div class='modal-header'><button type='button' ng-click='cancel()' class='close' data-dismiss='modal' aria-label='Close'>" +
"<span aria-hidden='true'>×</span></button> " +
"<h4 class='modal-title' id='myModalLabel'><div>" +
"</div><div ng-bind=\"message\"></div></h4></div>";
var modalInstance = $modal.open({
template: modalHtml,
controller: function ($scope, $modalInstance, message) {
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
$scope.message = message;
},
resolve: {
message: function () {
return message;
}
}
});
}