У меня есть система, позволяющая пользователям оставлять комментарии.
Комментарии захватываются в текстовое поле.
Моя проблема заключается в форматировании комментариев с тегом br для замены \n
На самом деле, я мог бы сделать что-то вроде этого
s.gsub(/\n/, '<br />')
Но защита xss, в том числе и в рельсах, пропускает ярлыки br.
Так что я мог бы сделать это
s.gsub(/\n/, '<br />').html_safe
Но тогда все теги принимаются даже script.... вызывают большую проблему с безопасностью
Итак, мой вопрос: как форматировать текст с br безопасно?
Спасибо
EDIT: На данный момент я добавляю это
def sanitaze
self.gsub(/(<.*?>)/, '')
end
def nl2br
self.sanitaze.gsub(/\n/, '<br />').html_safe
end