Rails: правильный вывод комментариев

программирование базы данных ruby ruby on rails rails

Антон Витальевич, еще один вопрос про правильный вывод комментариев ("и всего такого").
Никак не могу понять, как же мне выводить комментарии, отфильтровывая неразрешенные теги. Сейчас у меня реализация такая (без защиты):
1. Текст пишется в разметке Textile.
2. При сохранении обрабатывается Redcloth методом to_html.
3. В базу заносятся как код в textile-разметке, так и код в html.
4. На странице вывожу html контент с методом html_safe.

Таким образом, если на 1 этапе ввести <script>alert('Hello!')</script>, то скрипт выполнится при отображении комментария.

Каким образом мне выводить только разрешенные теги, но так, чтобы они не были вырезаны из <pre> и <pre><code>? То есть, чтобы пользователи могли выкладывать код, облаченный в <pre>, либо каждый выложенный пользователем код автоматически обволакивался <pre>?

Пока идея по защите только такая: после пункта 1 применять sanitize, после чего уже переходить к методу to_html.

Своими мыслями по этому поводу можете поделиться?

Примечание:
Эту статью я тоже видел, но, насколько я понял, там просто разъяснение про XSS и методы типа html_safe, но я так и не понял, как мне сделать фильтрацию только определенных частей контента...

Примечание:
>> А почему не принимать контент из произвольного\удобного пользователю wysiwyg, парсить nokogiri под фильтром (гоня всю ересь в safe-текст), сохранять и отдавать? (пардоньте конечно, если влез в дискуссию, к которой не имею отношения ))))

Натыкался пару раз на статьи, чем плохи визивиги. Погуглите) а вообще, сайт для программистов будет, поэтому визивиг я отмел сразу, "не кошерно")

Примечание:
Да, кстати, я уже реализовал это так, как описывал выше сам) Загвоздка была только в том, что я методы применял в обратном порядке почему-то)
Ответы:
не занимался никогда этим вопросом, но видел интересную статью
заниматься скоро придется, т.к. сейчас в двух проектах у меня комментарии
собственным опытом поделюсь позже
А почему не принимать контент из произвольного\удобного пользователю wysiwyg, парсить nokogiri под фильтром (гоня всю ересь в safe-текст), сохранять и отдавать? (пардоньте конечно, если влез в дискуссию, к которой не имею отношения ))))
------------
>> а вообще, сайт для программистов будет
тогда вопрос исчерпан )))


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

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

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.