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

我个人使用消毒宝石。

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

我使用 sanitize helper 可从ActionView

模块 ActionView::Helpers::SanitizeHelper

于 2009-07-21T18:27:16.697 回答