HttpServletRequest - быстрый способ кодирования URL и параметров скрытых полей - PullRequest
0 голосов
/ 23 февраля 2010

В моем Java-приложении я предотвращаю атаки XSS. Я хочу закодировать URL и параметры скрытых полей в объектах HttpServletRequest, с которыми у меня есть дескриптор.

Как бы я поступил так?

Ответы [ 3 ]

1 голос
/ 25 февраля 2010

Не делай этого. Вы делаете это излишне сложным. Просто избегайте его только во время показа. См. Мой ответ в другой вашей теме: Java 5 HTML, выходящий для предотвращения XSS

1 голос
/ 23 февраля 2010

Чтобы правильно отобразить введенные пользователем данные на HTML-странице, вам просто нужно убедиться, что любые специальные символы HTML правильно закодированы в виде сущностей через String#replace или аналогичные. Хорошей новостью является то, что вам нужно очень мало кодировать (для этой цели):

str = str.replace("&", "&amp;").replace("<", "&lt;");

Вы также можете заменить >, если хотите, но в этом нет необходимости.

Это не только из-за XSS, но и из-за того, что символы отображаются правильно. Возможно, вы также захотите убедиться, что символы вне общего латинского набора превращены в соответствующие объекты для защиты от проблем с кодировкой (UTF-8 против Windows-1252 и т. Д.).

0 голосов
/ 23 февраля 2010

Вы можете использовать StringEscapeUtils из библиотеки Apache Jakarta Commons Lang

http://www.jdocs.com/lang/2.1/org/apache/commons/lang/StringEscapeUtils.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...