0

我创建了一个应用程序,允许用户输入大量不同的数据(帖子、评论等)。simple_format 对我有好处,现在我只想防止疯狂的东西。在阅读一些指南之前和之后我没有使用过消毒,我仍然对如何实施感到有些困惑。希望我能在这里得到一些指导。

假设我正在收集@post.body。如何删除用户可能输入的任何<div> 标签或标签?<script>我假设在视图中它看起来像这样:

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

...但是我在哪里定义哪些标签是不允许的?在 Post 模型中还是在 sanitize_helper 中?这里的正确语法是什么?

4

1 回答 1

3

这是Rails 2.3.8中sanitize方法的文档链接。考虑到这一点,您将能够以这种方式定义允许的标签:

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

请注意,您也可以在 Rails Initializer 中定义它们:

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

我希望这个对你有用!

于 2010-11-18T20:38:43.313 回答