Реализация sanitize simple_format в рельсах 2.3.8 - PullRequest
0 голосов
/ 18 ноября 2010

Я создал приложение, которое позволяет пользователям вводить множество различных данных (посты, комментарии и т. Д.). Simple_format хорош для меня, сейчас я просто хочу защитить себя от сумасшедших вещей. Я не использовал sanitize до и после прочтения некоторых руководств, я все еще немного запутался в том, как это сделать. Надеюсь, я могу получить направление здесь.

Допустим, я собираю @ post.body. Как удалить любые теги <div> или <script>, которые могут быть введены пользователем? Я предполагаю, что в представлении это будет выглядеть примерно так:

<%= sanatize(simple_format @post.body) %>

... но где я могу определить, какие теги запрещены? В модели Post или в sanitize_helper? Какой правильный синтаксис здесь?

1 Ответ

3 голосов
/ 18 ноября 2010

Вот ссылка на документацию для метода sanitize в Rails 2.3.8. Имея это в виду, вы сможете определить разрешенные теги следующим образом:

<%= sanitize(simple_format(@post.body), :tags => %w(p span strong)) %>

Обратите внимание, что вы можете определить их также в инициализаторе Rails:

  Rails::Initializer.run do |config|
    config.action_view.sanitized_allowed_tags = 'table', 'tr', 'td'
  end 

Надеюсь, вы найдете это полезным!

...