предотвратить межсайтовый скриптинг в Java - PullRequest
0 голосов
/ 04 октября 2011

Есть старый веб-проект, который я должен поддерживать и развивать.Я отсканировал его с помощью инструмента fortify, и он обнаружил множество дефектов в межсайтовом скриптинге.Проект содержит много jsps и сервлетов.Проверка в каждом поле практически невозможна из-за количества jsp-файлов.Какой самый простой способ предотвратить xss в старом проекте.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 августа 2017

Здесь нет простых ответов.Вы можете (как упоминает Sridhar) переопределить getParameter и выполнить там кодирование, и это обеспечит большой охват, но это неправильное место для кодирования - кодирование должно выполняться, когда вы знаете, где используется значение.Это решит некоторые проблемы безопасности, но приведет к кодированию HTML в областях, которые ему не подходят (DB, Javascript ...), а также к двойному кодированию значений.

Правильный ответ - просмотреть результаты Fortify икодировать области, в которых испорченный вывод отправляется в HTML, javascript .... Проверьте OWASP для кодировщиков.

0 голосов
/ 15 февраля 2012

Вы можете создать класс CustomRequestWrapper, который расширяет HttpServletRequestWrapper, где вы можете переопределять методы, такие как getParameter, getParameterValues ​​и т. Д.

Кодирование / экранирование сущности HTML для предотвращения XSS ..

Просто добавьте фильтр, который может направить все запросы в ваш CustomRequestWrapper. Чтобы они попали в ваш код предупреждения Xss.

Добавить фильтр xml в Web.xml

и в вашем customRequestWrapper сделайте следующее,

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException, ServletException {
    chain.doFilter(new CustomRequestWrapper((HttpServletRequest) request), response);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...