Frage

Ich suche nach Rat, wie eingereicht html in einer Web-App zu reinigen, so dass es in Zukunft mit herausen Arten oder nicht geschlossenen Tags Wrecking das Layout einer App erneut angezeigt werden kann.

Auf meinem App Rich-HTML von Benutzern mit YUI Rich-Text-Editor vorgelegt wird, die standardmäßig ein paar regexps läuft die Eingabe zu reinigen, und ich rufe auch die [filter_MSWord][1] jeden Mist in vom Büro geschickt zu fangen

Am hinteren Ende, ich bin mit ruby-tidy, um die html zu sanieren, bevor sie als Kommentare angezeigt werden, aber gelegentlich schlecht geklebt html noch das Layout der App beeinflusst Ich verwende - wie kann ich dagegen schützen?

FWIW hier sind die Sanitizer Einstellungen Ich bin mit -

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

Was sind meine Optionen hier?

War es hilfreich?

Lösung

ich persönlich die sanitize gem verwenden.

require 'sanitize'
op = Sanitize.clean("<html><body>wow!</body></hhhh>") # Notice the incorrect HTML. It still outputs "wow!"

Andere Tipps

Ich verwende den sanitize Helfer von ActionView verfügbar

Modul ActionView :: Helpers :: SanitizeHelper

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top