Антон Витальевич, еще один вопрос про правильный вывод комментариев ("и всего такого").
Никак не могу понять, как же мне выводить комментарии, отфильтровывая неразрешенные теги. Сейчас у меня реализация такая (без защиты):
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-текст), сохранять и отдавать? (пардоньте конечно, если влез в дискуссию, к которой не имею отношения ))))
Натыкался пару раз на статьи, чем плохи визивиги. Погуглите) а вообще, сайт для программистов будет, поэтому визивиг я отмел сразу, "не кошерно")
Примечание:
Да, кстати, я уже реализовал это так, как описывал выше сам) Загвоздка была только в том, что я методы применял в обратном порядке почему-то)
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.