Как я могу проверить хэш-карту с помощью esapi?

Для этого кода:

HashMap temphashMap = session.getAttribute("abc");

как я могу проверить хэш-карту на предмет уязвимости межсайтового скриптинга с помощью ESAPI?


person ManthanB    schedule 02.02.2016    source источник
comment
Непонятно, что вы спрашиваете. Что вы подразумеваете под подтверждением?   -  person Thomas Stets    schedule 02.02.2016
comment
Мне нужно проверить хэш-карту/коллекцию на наличие уязвимости межсайтовых сценариев, которая является одним из типов уязвимости системы безопасности.   -  person ManthanB    schedule 02.02.2016


Ответы (1)


Вы не можете этого сделать. Чтобы выполнить проверку, вы должны заранее знать специальные правила и потоки данных для каждого отдельного элемента в этом HashMap.

Как узнать, является ли одно из полей формы в вашем приложении форматированным текстом, вроде того, которое я использовал для ввода этого ответа? Что, если некоторые HTML-теги разрешены?

Вы не можете этого знать.

Вот почему в 100 раз важнее убедиться, что данные правильно закодированы для надлежащего контекста.

Для этого вы будете использовать методы класса ESAPI.encoder().

Самое близкое к тому, о чем вы просите, - это настроить фильтр сервлета для каждой пары запрос/ответ, а затем использовать фильтр XSS, такой как AntiSamy, чтобы разрешить определенные теги и запретить другие. Однако правила отличаются для значения, используемого в атрибуте HTML, тексте тега HTML или блоке <textarea>. Вам пришлось бы написать довольно значительный объем логики для того, чего вы могли бы избежать, просто экранируя все данные, прежде чем передать их другому интерпретатору.

person avgvstvs    schedule 02.02.2016