2015-12-12 3 views
0

Это мой текущий рабочий код:Rails пытается раздеть HTML и белый список, но дезинфицировать не работает

= auto_link(strip_tags(simple_format(truncate(user.notes, :length => 150, :separator => " ", :escape => false))),html: { target: '_blank' }) 

Я использую богатый текстовый редактор, и я хочу, чтобы белый список HREF или через тег, но sanitize метод не работает для меня, только strip_tags удаляет теги HTML, которые я хочу.

Как сделать белый список, используя strip_tags?

ответ

0

Возможно, вам стоит попробовать sanitize GEM.

Для богатого редактора я предлагаю санировать, когда вы сохраняете содержимое в БД, а не когда вы собираетесь отображать содержимое. Это гораздо безопаснее.

Вот как я использую в своем проекте, в before_save, дезинфицирующую ценность.

safe_value = Sanitize.fragment(value, 
           :elements => %w{a b br em i li ol p strong u ul}, 
           :attributes => {'a' => ['href'], 'p' => ['style'], 'ol' => ['style'], 'ul' => ['style'], 'li' => ['style']}, 
           :add_attributes => {'a' => {'rel' => 'nofollow'}}, # nofollow for SEO 
           :protocols => {'a' => {'href' => ['http', 'https']}}, 
           :css => {:properties => ['text-align', 'margin-left']}) 

Просто отрегулируйте параметры для ваших нужд.