Was ist HTML-Entitäten-Encoder/Decoder?

Ein HTML-Entity-Encoder/Decoder konvertiert Sonderzeichen wie <, >, & und Anführungszeichen in ihre HTML-Entity-Äquivalente (und zurück). Dies verhindert XSS-Schwachstellen beim Einbetten von Benutzerinhalten in HTML und behebt Darstellungsprobleme mit Sonderzeichen.

Der Encoder wandelt Zeichen wie <, >, &, ", ' und jeden Unicode-Codepunkt in benannte Entitäten (&amp;, &lt;), dezimale Referenzen (&#38;) oder hexadezimale Referenzen (&#x26;) um. Ein Bereichsschalter ermöglicht die Kodierung nur der fünf reservierten Zeichen, aller Sonderzeichen oder jedes Nicht-ASCII-Zeichens. Das Dekodieren kehrt jedes der drei Formate um. Praktisch zum Bereinigen von Benutzereingaben für HTML-Ausgaben oder zum Wiederherstellen von Text aus HTML-E-Mail-Exporten.

Anleitung

  1. Schritt 1 — Fügen Sie Text mit Sonderzeichen oder HTML-Entities ein.
  2. Schritt 2 — Wählen Sie "Kodieren", um Zeichen in Entities umzuwandeln, oder "Dekodieren", um Entities zurück in Zeichen zu konvertieren.
  3. Schritt 3 — Wähle ein Format (Benannt, Dezimal oder Hex) und einen Bereich, um zu steuern, wie stark kodiert wird.

Wann verwenden

  • Code-Beispiele in ein CMS einfügen, ohne dass < und > als Tags verschluckt werden.
  • Text aus HTML-Mails oder Scraping aufräumen, in dem noch &mdash; und &nbsp; stehen.
  • Benutzereingaben vor dem Einfügen ins Server-Template escapen, um XSS zu blockieren.

Ergebnis

Sie müssen den Code-Ausschnitt <div class="hero"> innerhalb eines HTML-Absatzes anzeigen. Kodieren Sie ihn zu &lt;div class=&quot;hero&quot;&gt;, damit der Gerät den Text darstellt, anstatt ihn als Markup zu interpretieren.

Häufige Fragen

Was unterscheidet benannte von numerischen HTML-Entitäten?
Benannte sind lesbare Kürzel (&copy; für ©). Numerische nutzen den Unicode-Codepoint (&#169; oder &#xA9;). Numerisch funktioniert für jedes Unicode-Zeichen; benannte sind auf rund 250 in HTML5 definierte Zeichen begrenzt.
Muss man jedes Sonderzeichen codieren oder nur bestimmte?
Im HTML-Textkörper musst du nur & < > und das in Attributwerten verwendete Anführungszeichen kodieren. In JavaScript- oder URL-Kontexten gelten andere Regeln. Der Bereichsschalter bietet: Nur reservierte für die fünf XSS-kritischen Zeichen, Alle Sonderzeichen für Typografie plus reservierte oder Alle Nicht-ASCII für die umfassendste Abdeckung.
Bricht das Codieren Copy-Paste oder Screenreader?
Nein. Der Browser decodiert Entitäten vor dem Rendern, der Nutzer sieht und kopiert das ursprüngliche Zeichen. Screenreader bekommen ebenfalls die decodierte Form. Entitäten sind ein Transportformat für das Markup, kein Ausgabeformat.
Reicht HTML-Entity-Codierung allein gegen XSS?
Für Text im HTML-Body ja. In Attributen muss man den Wert in Anführungszeichen setzen und das verwendete Anführungszeichen mitcodieren. JavaScript, CSS und URLs haben eigene Escape-Regeln. Codierung ist die erste Schicht, nicht die ganze Abwehr.
Warum beginnen manche Entitäten mit &#x und andere nur mit &#?
&#x leitet einen hexadezimalen Codepoint ein, &# einen dezimalen. Beide zeigen auf dasselbe Zeichen: &#xA9; und &#169; ergeben ©. Hex passt zur U+-Schreibweise aus Unicode-Tabellen und ist bei hohen Codes kürzer.

Ähnliche Tools