Выход Java 5 HTML Для Предотвращения XSS

Я изучаю некоторое предотвращение XSS в своем JAVA-приложении.

У меня в настоящее время есть сделанные на заказ стандартные программы, которые выйдут из любого HTML, сохраненного в базе данных для безопасного дисплея в моем jsps. Однако я использовал бы созданный в/стандартный метод сделать это, если это возможно.

Я в настоящее время не кодирую данные, которые отправляются в базу данных, но хотели бы начать делать это также.

Там кто-либо создается в методах, которые могут помочь мне достигнуть этого?

6
задан BalusC 25 February 2010 в 12:32
поделиться

2 ответа

Обычно вы избегаете XSS во время отображения, а не во время хранения. В JSP вы можете использовать JSTL (просто бросьте jstl-1.2.jar в /WEB-INF/lib) тег или fn:escapeXml функцию для этого. Например,

<input name="foo" value="<c:out value="${param.foo}" />">

или

<input name="foo" value="${fn:escapeXml(param.foo)}">

Вот и все. Если вы делаете это и при обработке ввода и/или хранении в БД, то все это размазывается по бизнес-коду и/или в БД. Вы не должны этого делать, это только проблемы с обслуживанием, и вы рискуете получить двойные эскейпы или больше, когда вы делаете это в разных местах (например, & станут &amp; вместо &, так что конечный пользователь будет буквально видеть & вместо &. Код и БД не чувствительны к XSS. Только представление чувствительно. Вы должны избегать его только прямо здесь.

Update: вы разместили 4 темы на одну и ту же тему:

Я только предупрежу: вам не нужно экранировать его в servlet/filter/javacode/database/whatever. Вы только неоправданно усложняете ситуацию. Просто экранируйте его при отображении. Вот и все.

9
ответ дан 8 December 2019 в 12:59
поделиться

не встроен, но проверьте фильтр owasp esapi , он должен делать то, что вы ищете, и многое другое. Это отличная библиотека безопасности с открытым исходным кодом, написанная умными парнями и девушками из Owasp («Проект безопасности открытых веб-приложений»).

5
ответ дан 8 December 2019 в 12:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: