Wie man am besten Rich-HTML mit Schienen zu sanieren?
-
18-09-2019 - |
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?
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