Spring MVC defaultHtmlEscape - он работает на входе или выходе? - PullRequest
8 голосов
/ 02 февраля 2012

Когда я устанавливаю defaultHtmlEscape в true в web.xml, значения, заданные во всех полях ввода, экранируются.

Но когда они передаются, значения не экранируются.

Итак, верно ли, что этот параметр предназначен только для вывода и не включает в себя отправку параметров (и поэтому, если я хочу сохранить безопасные для xss значения в базе данных, я должен сделать что-то еще)

Ответы [ 2 ]

6 голосов
/ 02 февраля 2012

Значение по умолчанию для экранирования HTML для полей ввода уже равно true, поэтому true означает поведение, которое вы получаете по умолчанию.

Более того, я думаю, что если вы хотите хранить безопасные для xss значения в базе данных, вам нужно установить значение false, чтобы избежать двойного экранирования.

Итак, для экранирования ввода вам нужно что-то другое, возможно, фильтр. Хотя я не думаю, что экранирование ввода - хорошая идея, последовательное экранирование выглядит более надежно и не создает проблем при обработке данных в базе данных.

1 голос
/ 02 февраля 2012

Я думаю, что для экранирования формы ввода , нужно сделать один раз:

<form:input path="someProperty" htmlEscape="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...