Ruby on Rails: как лучше всего избежать строки в модели? - PullRequest
1 голос
/ 21 мая 2010

Я хочу, чтобы мое приложение дезинфицировало html при вводе, а не на дисплее, чтобы поля, сохраненные в базе данных, были санированы.

Я делал это с strip_tags, и это прекрасно работало. Однако у этого есть недостаток, заключающийся в том, что пользователь не может вводить что-либо, заключенное в скобки с < и >.

Как я могу сказать Rails в модели, что нужно безопасно экранировать теги перед их сохранением в базе данных? Мне бы не хотелось снова вызывать h на очищенных полях, прежде чем использовать их в представлениях.

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Один из вариантов - использовать плагин xss_terminate: http://code.google.com/p/xssterminate/

По умолчанию он удаляет все теги HTML из пользовательского ввода.

1 голос
/ 21 мая 2010

Вы можете вызвать метод h в фильтре before_save.

...