Может ли кто-нибудь объяснить, почему VeraCode, похоже, считает, что использование name
в качестве общедоступного свойства - плохая идея, и предлагает хороший комментарий для смягчения последствий?
код (JavaScript):
var BatchTask = (function () {
function BatchTask(batchOrTask, isBatch) {
if (isBatch) {
...
}
else {
var task = batchOrTask;
this.name = task.name; // flaw identified on this line
}
}
return BatchTask;
}());
недостаток: CWE-80: неправильная нейтрализация связанных со скриптом тегов HTML на веб-странице ( Базовый XSS)
Вектор атаки: название
Описание: этот вызов name () содержит ошибку межсайтового скриптинга (XSS). Приложение заполняет HTTP-ответ ненадежным вводом, позволяя злоумышленнику внедрить вредоносный контент, такой как код Javascript, который будет выполняться в контексте браузера жертвы. Уязвимости XSS обычно используются для кражи файлов cookie или манипулирования ими, изменения представления контента и компрометации конфиденциальной информации, при этом регулярно обнаруживаются новые векторы атак.