Клиент Потенциал XSS без надлежащей очистки или проверки
Я получаю следующее сообщение о проверке контрольной пометки в моем коде. Получает пользовательский ввод для текстового элемента. Затем значение этого элемента проходит через код без надлежащей очистки или проверки и в конечном итоге отображается пользователю в методе. Ниже приведен мой код. Могут ли некоторые помочь мне, как санировать нижеприведенный сценарий.
Сценарий следующим образом:
function setSummary(select,summary,lim, summaryHidden, limHidden) {
if(select[select.selectedIndex].value == '-1') {
summary.innerHTML = '';
lim.innerHTML = '';
summaryHidden.value = '';
limHidden.value = '';
} else {
summary.innerHTML = 'Test1 - '+select[select.selectedIndex].text;
summaryHidden.value = 'Test2 - '+select[select.selectedIndex].text;
lim.innerHTML = 'Virtual - '+select[select.selectedIndex].text;
limHidden.value = 'Virtual - '+select[select.selectedIndex].text;
}
}
Я получаю уязвимость checkmarx в строке ниже, без надлежащей очистки или проверки
summary.innerHTML = 'Test1 - '+select[select.selectedIndex].text;
Могут ли некоторые помочь мне, пожалуйста, как правильно продезинфицировать вышеуказанную линию.
1 ответ
Является ли это пригодным для использования, действительно зависит от контекста того, как эта функция вызывается, где объект select
исходит от (и как он населен - это когда-либо внешне управляемый?)
Несмотря на это, самое простое решение здесь было бы установить значение innerText
собственность, а не innerHTML
, вот так:
summary.innerText = 'Test1 - ' + select[select.selectedIndex].text;