Я запустил свое веб-приложение (созданное с помощью Play Framework с использованием Java) через Veracode, и оно вернуло предупреждение:
CWE-80: Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic XSS)
для моей функции jQuery .html()
.
Я обновляю элемент <table>
с помощью HTML из вызова REST.
Вот код JavaScript:
function getPTPComments() {
var finalURL = restURL + "/restGetCommentsTable";
var keyToSend = $("#ptpKey").val();
var htmlTable = "";
// Clear the comments table...
$("#displayCommentsOnTab").empty();
$.ajax({
type: "POST",
url: finalURL,
data: keyToSend,
dataType: "text",
contentType: "text/plain",
success: function (resp) {
htmlTable = resp;
},
error: function (req, status, err) {
console.log("tabCommentsTab - something went wrong");
console.log("tabCommentsTab - req: " + req);
console.log("tabCommentsTab - status: " + status);
console.log("tabCommentsTab - err: " + err);
}
});
// Replace table html with htmlTable...
$("#displayCommentsOnTab").html(htmlTable); // WARNING HERE
}
Я нашел несколько сообщений об этом, но не знаю, как изменить свой код, чтобы удалить это предупреждение:
https://www.codeproject.com/Questions/1062655/Improper-Neutralization-of-Script-Related-HTML-Tag
Если у вас есть идеи, как обновить мой код, я с нетерпением жду вашего ответа.
.html()
, потому что он является результатом асинхронного HTTP-запроса. Что касается ошибки Veracode, насколько я могу судить, этот продукт в целом неправильный; может быть опасным обновлять DOM таким образом, но в этом нет никакой уверенности. - person Pointy   schedule 08.08.2018$("#displayCommentsOnTab").html(htmlTable);
внутрь обратного вызова успеха. - person Pointy   schedule 08.08.2018