Ввод текста только в Rails - PullRequest
       1

Ввод текста только в Rails

1 голос
/ 08 апреля 2011

Иногда я боюсь, что хакеры включат сценарии в любое текстовое поле.Возможно, я смогу использовать метод sanitize, но ненадолго, потому что скрипт все еще хранится в базе данных.

Например, в поле input как заставить Rails принимать толькопростой текст?И удаляет все < или > или что опасно?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 08 апреля 2011

Если вы используете Rails 3, тогда вы получаете бесплатный эффект очистки при печати данных в представлениях.

Если вы используете Rails 2, то вы можете использовать хелпер h вот так, чтобы убедиться, что он правильно экранирован:

<%=h @model.input_data %>
0 голосов
/ 08 апреля 2011

По умолчанию в Rails 3.0+ все выходные данные html экранированы.

Однако, если вы не хотите загрязнять вашу базу данных html / javascript и т. Д., Я бы воспользовался преимуществом before_saveобратный вызов .

Если вы используете html_escape или h псевдоним:

<%= h @record.field %>
0 голосов
/ 08 апреля 2011

вы можете html_escape это в before_save обратный вызов для вашей модели

Ссылка API: http://apidock.com/rails/ERB/Util/html_escape

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