4

Web アプリで送信された html をクリーンアップして、スタイルや閉じられていないタグがアプリのレイアウトを破壊することなく、将来再表示できるようにする方法についてのアドバイスを探しています。

私のアプリでは、リッチ HTML が YUI リッチ テキスト エディターを使用してユーザーによって送信されます。これは、デフォルトでいくつかの正規表現を実行して入力をクリーンアップします。[ を呼び出してfilter_MSWord][1]、オフィスから送信されたがらくたをキャッチすることもできます。

バックエンドでは、ruby-tidyコメントとして表示される前に HTML をサニタイズするために実行していますが、不適切に貼り付けられた HTML が、使用しているアプリのレイアウトに影響を与えることがあります。これを防ぐにはどうすればよいですか?

FWIWここに私が使用している消毒剤の設定があります-

module HTMLSanitizer


  def tidy_html(input)

    cleaned_html = Tidy.open(:show_warnings=>false) do |tidy|
      # don’t output body and html tags
      tidy.options.show_body_only = true 
      # output xhtml
      tidy.options.output_html = true
      # don’t write newlines all over the place
      tidy.options.wrap = 0
      # use utf8 to play nice with rails
      tidy.options.char_encoding = 'utf8'
      xml = tidy.clean(input)
      xml
    end
  end

end

他にどのようなオプションがありますか?

4

2 に答える 2

8

私は個人的にsanitize gemを使用しています。

require 'sanitize'
op = Sanitize.clean("<html><body>wow!</body></hhhh>") # Notice the incorrect HTML. It still outputs "wow!"
于 2009-07-21T17:15:49.400 に答える
2

から入手できるサニタイズヘルパーを使用しますActionView

モジュール ActionView::Helpers::SanitizeHelper

于 2009-07-21T18:27:16.697 に答える