Как исправить Veracode - Межсайтовый скриптинг - CWE ID 80 - Базовый XSS - использование $ (item) в функции .each - PullRequest
0 голосов
/ 04 декабря 2018

Итак, когда наше веб-приложение сканируется на наличие Veracode, я получаю множество недостатков межсайтового скриптинга,

«Неправильная нейтрализация связанных со сценариями HTML-тегов на веб-странице (Basic XSS)»(CWE ID 80).

И из нескольких недостатков, которые у нас есть, я не мог понять, как исправить этот конкретный сценарий.Ниже приведен мой фрагмент кода -

$(".ui-dialog-buttonset .ui-button:visible").each(function(index, item) {
    var label = $(item).text();
    if (label == "Save" || label == "Create")
        $(item).click();
});

Я вижу сообщение о недостатке в строках $(item).text(); и $(item).click();.
Я понимаю, что для текста я могу использовать что-то вроде DOMPurify.sanitize для очисткистрока.
Но я не мог понять, почему veracode сообщает о $(item).click(); Это потому, что сам $(item) небезопасен?
Если да, то как мне это исправить?Я был бы очень признателен за любую помощь в этом.

1 Ответ

0 голосов
/ 17 декабря 2018

Хорошо, найдено исправление из библиотеки DOMPurify .Вы также можете продезинфицировать элемент DOM, используя DOMPurify.
Итак, приведенный ниже код работает -
item = DOMPurify.sanitize(item, {SAFE_FOR_JQUERY:true});

...