2010-03-23 3 views
13

Ich habe ein HTML-Tag <textarea>$FOO</textarea> und die $FOO Variable wird mit beliebigen HTML- und JavaScript-Inhalt gefüllt, um innerhalb der Textarea angezeigt und bearbeitet werden. Welche Art von "Flucht" muss ich bei $ FOO anwenden?HTML: <textarea> -Tag: Wie HTML und JavaScript-Inhalt korrekt dort angezeigt werden?

Zuerst habe ich davon geträumt, es HTML zu entgehen, aber das hat nicht funktioniert (da ich dann nicht den ursprünglichen HTML-Code von $ FOO sondern den entflohenen Inhalt gezeigt bekomme. Das ist natürlich nicht was ich will: Ich möchte angezeigt werden der unescaped HTML/JS Inhalt der variablen ...

Ist es nicht möglich, HTML-Inhalt innerhalb eines <textarea> Tages angezeigt werden und es auch als vollständiger HTML?

dank jens

+0

Das war meine Schuld: Das Problem war der Inhalt wurde zwei Mal entkam. – jens

Antwort

20

ich zum ersten Mal tought davon

Ja HTML entkommen, das ist richtig. Der Inhalt eines <textarea> unterscheidet sich nicht von dem Inhalt eines anderen Elements wie <span> oder <p>: Wenn Sie etwas Text in den Text eingeben möchten, müssen Sie alle < oder & Zeichen darin in &lt; bzw. &amp;. anstelle von Tags

Browser neigen Ihnen mehr Spielraum mit Fehlern Markup in <textarea> s geben, dass in dem Rückfall für ungültig unescaped < Symbole ist sie als Text zu machen, aber das macht es nicht minder falsch oder gefährlich (für XSS).

aber das hat nicht funktioniert

Bitte posten, was man nicht arbeiten das hat getan. HTML-Escaping ist definitiv das Richtige.

+0

Danke für Ihre Antwort. Ich verwende "Commons Velocity", das intern eine andere StringUtils-Bibliothek von Apache für die HTML-Codierung verwendet. Ich muss tiefer graben es scheint, dass irgendwo theres dann etwas schief geht: gibt mir <! - test - > Das bedeutet, dass etwas doppelt entkommen ist. Danke für deine Antwort, dann weiß ich, dass ich weiter forschen muss, wie ich dem entkommen kann. – jens

+0

Vielleicht überprüfen, ob ein 'EscapeHtmlReference' ReferenceInsertionEventHandler in Velocity eingerichtet wurde. Wenn ja, würden Sie nicht mehr entkommen müssen. – bobince

+0

@bobince - Ich habe ähnliche Fragen zur Verwendung des PageDown-Editors/Desinfektors. Würde es dir etwas ausmachen, einen Blick darauf zu werfen? Im Kontext von MVC3 kann ich nicht die richtige Methode finden, um meinen TextArea-Inhalt zu verschlüsseln, bevor er auf den Server zurückgeschickt wird: http://stackoverflow.com/questions/9073132/request-validation-when-posting-html-javascript- content-mvc3 und http://stackoverflow.com/questions/9071369/handling-code-blocks-with-markdown-pagedown –

2

Sie editierbar sein lassen müssen das Sonderzeichen von HTML durch character references (eit ihre numerischen Zeichenreferenzen oder Entitätsreferenzen), in , mindestens &, < und >.

+0

hallo Gumbo, Danke für Ihre Hilfe !!! Es scheint dann das Problem zu sein, dass die fliehenden Bibliotheken nicht richtig funktionieren. Vielen Dank. – jens

Verwandte Themen