По состоянию на Rails 3 и живое избиение команда Rails core dev взяла, когда Rails была небезопасной по умолчанию, все строки теперь помечены как безопасные или небезопасные, при этом «небезопасные» строки являются стандартными. Вам нужно только подумать о явном управлении «безопасностью» строк в Rails при написании помощников, которые выводят HTML в ваш шаблон.
Спасаясь против санировать: В этом контексте, означает замену некоторых символов строки с управляющей последовательностью HTML, который будет удалить особое значение из текста и вызвать его визуализации, как обычный текст побега. Sanitizing, с другой стороны, означает проверку содержимого HTML для обеспечения использования только хороших HTML-тегов и атрибутов. Обратите внимание, что дезинфекция по своей сути менее безопасна, чем экранирование из-за этого, и ее следует использовать только тогда, когда отображаемый контент должен содержать разметку HTML. Примером может служить HTML-редактор WYSIWYG в текстовом поле, которое управляет кодом, который впоследствии отображается на странице.
Sanitize кодирует все теги и перетаскивает все атрибуты (не разрешенные специально для вашего случая) из переданной ему строки html. Он также разбивает теги href и src на недопустимые протоколы, чтобы предотвратить злоупотребление атрибутами js. Strip_tags, с другой стороны, разделит все предоставленные теги, включая комментарии, которые звучат точно так, как вы хотите. До тех пор, пока вы белый список Params и добавление их в БД правильно спаслось, такие как:
Title.where(author = ?, author_id)
и не слепо вставки пользовательского ввода в вашу БД я бы комфортно с тем, как вы настройкой.
Вы используете рельсы 4? Основная команда rails сделала много, чтобы сделать вещи безопасными по умолчанию на полпути через рельсы 3. –