Text für einen HTML-Textknoten kodieren
Nutzen Sie diese Richtung, wenn wörtlicher Text auf einer HTML-Seite erscheinen soll, ohne dass der Browser spitze Klammern als Tags behandelt. Bei einer Eingabe wie <b>Hallo</b> enthält die Ausgabe Referenzen für die Klammern; ein späterer HTML-Parser kann den Ausschnitt dann als Text anzeigen. Das Und-Zeichen wird zuerst maskiert, damit eine vorhandene referenzähnliche Folge nicht unerwartet interpretiert wird. Auch Anführungszeichen werden maskiert, aber dadurch ist das Ergebnis noch nicht für jedes Attribut oder Skript sicher.
Kodieren Sie kein vollständiges vertrauenswürdiges HTML-Dokument, wenn dessen Tags tatsächlich gerendert werden sollen: Sie sähen die Zeichen der Tags statt formatierten Inhalts. Für Nutzerkommentare sind textContent oder die sichere Textbindung eines Frameworks vorzuziehen; diese APIs berücksichtigen den Kontext. Soll ein Wert in ein href, eine CSS-Regel oder eine JavaScript-Zeichenfolge, verwenden Sie eine sichere API für genau dieses Ziel.
HTML-Zeichenreferenzen und ihr Kontext
HTML reserviert Zeichen wie das kaufmännische Und und spitze Klammern für Auszeichnung. Zeichenreferenzen stellen solche Zeichen als Daten dar: & steht beispielsweise für ein Und-Zeichen, < für ein Kleiner-als-Zeichen. Browser interpretieren Referenzen beim Parsen von HTML. Es gibt benannte und numerische Referenzen, doch ihre Bedeutung hängt davon ab, in welchem Kontext ein HTML-Parser sie liest. Eine ähnlich aussehende Zeichenfolge in einer gewöhnlichen Textdatei bedeutet noch nicht, dass diese Datei als HTML gerendert wurde.
Textinhalt ist von ausführbarer Auszeichnung zu unterscheiden. Von Nutzern gelieferter Text in einer Webseite ist etwas anderes als ein vertrauenswürdiges HTML-Fragment. Auch Textknoten, Attribute, URL-Attribute, CSS-Regeln und JavaScript-Zeichenfolgen benötigen unterschiedliche Behandlung. Die Umwandlung von Zeichenreferenzen ist ein Darstellungsschritt, keine vollständige Sicherheitsrichtlinie und kein HTML-Sanitizer. Verwenden Sie geeignete Vorlagen oder DOM-APIs für genau die Stelle, an der ein Wert eingefügt wird.
So verwenden Sie den Konverter
Beginnen Sie mit dem Originaltext und prüfen Sie, ob die Zielanwendung tatsächlich eine kodierte Darstellung erwartet. Fügen Sie Text ein oder laden Sie das Beispiel und betrachten Sie die Ausgabe vor dem Kopieren. Die Umwandlung läuft in diesem Browser; der Text wird nicht an einen Konvertierungsdienst hochgeladen. Diese Richtung ändert die Schreibweise der Information, nicht den Sinn des Satzes. Bewahren Sie die Quelle neben dem Ergebnis auf und kodieren Sie nur dann ein zweites Mal, wenn das Zielformat ausdrücklich zwei Ebenen verlangt.
Bewahren Sie die ursprüngliche Eingabe auf, wenn Sie ein Ergebnis prüfen müssen. Eine kodierte Darstellung kann ganz anders aussehen als der Ausgangstext, besonders bei Umlauten, Emoji, Satzzeichen oder Zeilenumbrüchen. Prüfen Sie vor der Weitergabe, welche Zeichenkodierung und welches genaue Format das empfangende Programm erwartet. Testen Sie zuerst ein kurzes bekanntes Beispiel und vergleichen Sie die Ausgabe in der Zielanwendung: ähnlich aussehende Formate sind nicht immer austauschbar.