0

ユーザーがさまざまなデータ(投稿、コメントなど)を入力できるようにするアプリケーションを作成しました。simple_formatは今のところ私にとっては良いことですが、クレイジーなものから保護したいだけです。私はいくつかのガイドを読む前後にサニタイズを使用していませんが、実装方法についてまだ少し混乱しています。私がここでいくつかの方向性を得ることができることを願っています。

@post.bodyを収集しているとしましょう。<div>タグまたは<script>ユーザーが入力した可能性のあるタグを削除するにはどうすればよいですか?ビューでは、次のようになると思います。

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

...しかし、許可されていないタグはどこで定義すればよいですか?Postモデルまたはsanitize_helperで?ここでの正しい構文は何ですか?

4

1 に答える 1

3

Rails2.3.8のsanitizeメソッドのドキュメントリンクは次のとおりです。これを念頭に置いて、許可されたタグを次のように定義できます。

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

RailsInitializer内でも定義できることに注意してください。

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

これがお役に立てば幸いです。

于 2010-11-18T20:38:43.313 に答える