Как исправить проблему Checkmarx Stored XSS из элемента getResultList

В Java в строке ниже:

TypedQuery<T> query=entityManger.createQuery(queryString, clazz);

List<T> result =query.getResultList();

В нем говорится, что переменная result должна быть правильно отфильтрована или закодирована, иначе она может привести к атаке межсайтовых сценариев.

Я уже использовал объект HtmlUtils.htmlEscape(queryString) String.

Любая помощь и предложения будут оценены. Спасибо


person Nitesh    schedule 11.08.2020    source источник
comment
Вам нужно кодировать output, а не queryString. См. результат @RomanCanlas.   -  person baruchiro    schedule 12.08.2020


Ответы (1)


Checkmarx в конечном итоге посмотрит на приемник (выход). Затем вам нужно будет выполнить htmlEscape в каждом из результирующих элементов в списке.

List<T> newResult = new ArrayList<T>();
for (T temp : result) {
    newResult.add(HtmlUtils.htmlEscape((String) temp));
}
person securecodeninja    schedule 12.08.2020
comment
добро пожаловать @nitesh и добро пожаловать в stackoverflow! - person securecodeninja; 12.08.2020