リッチテキストエディタを使用してアプリケーションのユーザーが挿入したコンテンツの一部をサニタイズしようとしています。私はクイックスタートの例を動作させることができないので、Railのgem sanitizeを使い始めるにはどうしたらいいですか?
私は
をインストールするバンドルを経由してsanitize gemをインストールしているし、それがインストールされた宝石のリストに表示され、その後、私のビューのいずれかで、このテストコードを追加しましたapplication_controlled.rb
でrequire 'sanitize'
を追加しました:<%= Sanitize.fragment('<p>1st <strong>sanitized </strong>comment</p>', Sanitize::Config::RELAXED) %>
が、出力は<p>1st <strong>sanitized </strong>comment</p>
で、私はそれが間違っているかどうか、またはそれに従う方法がわからない。
が本当らしいとしてそれをマークし、タグをエスケープせずに "そのまま" 表示されていることを懸念している場合。しかし、 'html_safe'自体を適用するのは消毒のポイントではありませんか?私は、 'html_safe'の結果を生成するための浄化の目的ではなく、さらにその事前定義された設定(BASIC、RELAXED ...) – Catalin
私にとって、 'sanitize'のポイントは悪質なHTMLを削除することで、'#html_safe'をある程度信頼できるようにすることです。私が知っている限り、出力はそのまま '#html_safe? 'で' false'に応答しますので、追加ステップが必要です。また、 '#html_safe'を含むコントローラコードで出力文字列を構築し、' brakeman'のようなチェッカーが誤検出をしないようにしたいと思います。 – SteveTurczyn
私はもう1つの質問があります。良い練習として、コントローラーの出力を消毒することは、単純に次のような問題でなければなりません: 'def show @comment = @ post.comments.find(params [:id])@ comment.content = Sanitize.fragment(@ comment.content)。 html_safe()end'? – Catalin