在我的代码上进行checkmarx扫描后,我收到以下信息。
在... \ action \ searchFun.js第23行执行的方法获取表单元素的用户输入。
此元素的值然后流经代码而未经过适当的清理或验证,并最终在../action/searchFun.js第28行的函数中显示给用户。这可能会导致DOM XSS攻击。
有些人可以帮助我如何消毒上述场景以满足Checkmarx的需求吗? 脚本如下:
function searchAnnouncements(){
$('#loadingAnnouncements').html('Loading...');
var formData = $('form').serialize();
jQuery.ajax({
type: "post",
url: "bat.ajax",
data: formData,
cache: false,
dataType: "json",
cache: false,
success: function(json) {
$('div.block').unblock();
$('#loadingAnnouncements').html('');
if (json.resultSize > 0)
$('#searchResults').html(json.searchResult);
});
},
}
答案 0 :(得分:1)
您可以使用DOMPurify
库。
https://github.com/cure53/DOMPurify
这可以通过保持安全的HTML标记来阻止XSS注入。
function searchAnnouncements(){
$('#loadingAnnouncements').html('Loading...');
var formData = $('form').serialize();
jQuery.ajax({
type: "post",
url: "bat.ajax",
data: formData,
cache: false,
dataType: "json",
cache: false,
success: function(json) {
$('div.block').unblock();
$('#loadingAnnouncements').html('');
if (json.resultSize > 0)
$('#searchResults').html(DOMPurify.sanitize(json.searchResult));
});
},
}