// HTML escapen
HTML Entities Encoder / Decoder
Kodiere unsichere HTML-Zeichen in Entitäten und dekodiere Entitäten zurück zu Zeichen.
Text
Escaped
HTML Entities Encoder / Decoder Beispiele.
// Entitäten unescapen
Häufig gestellte Fragen.
Warum HTML escapen?
Um XSS-Angriffe zu verhindern und sicherzustellen, dass Inhalte korrekt angezeigt werden.
Warum HTML-Escaping wichtig ist
Bestimmte Zeichen haben in HTML eine besondere Bedeutung: < und > definieren Tags, & leitet Entitäten ein, und " und ' begrenzen Attribute. Wenn diese Zeichen in Textinhalten erscheinen, müssen sie escaped werden, damit der Browser sie korrekt darstellt.
Ohne Escaping interpretiert der Browser das & in "Matrikel & Prüfung" als Beginn einer Entität und versucht, eine solche aufzulösen. Das Ergebnis ist ein falsch dargestellter oder gar nicht sichtbarer Text.
Das Escaping ist der erste und grundlegendste Schutz gegen Cross-Site Scripting (XSS). Wenn Benutzereingaben unescaped in eine HTML-Seite eingefügt werden, können Angreifer beliebigen JavaScript-Code einschleusen.
XSS-Schutz vs. Escaping
HTML-Escaping allein schützt vor einfachen XSS-Angriffen, indem < und > in ihre Entitätsformen < und > umgewandelt werden. Dadurch wird eingeschleuster Code als normaler Text dargestellt und nicht ausgeführt.
Für komplexere Anwendungsfälle reicht Escaping nicht aus. Tools wie DOMPurify bereinigen HTML-Input gründlich, indem sie nur erlaubte Tags und Attribute zulassen und potenziell gefährlichen Code entfernen.
Die beste Strategie kombiniert beide Ansätze: Benutzereingaben werden beim Einfügen in HTML-Bereiche escaped, und bei der Verarbeitung von rich HTML wird zusätzlich eine Sanitization durchgeführt.
Benannte vs. numerische Entitäten
HTML bietet zwei Arten, Sonderzeichen als Entitäten darzustellen: benannte Entitäten wie & für & und < für <, sowie numerische Entitäten wie < für < und < für denselben Wert in Hexadezimal.
Benannte Entitäten sind lesbarer und werden bevorzugt, wenn sie verfügbar sind. Es gibt nur eine begrenzte Menge an benannten Entitäten – die wichtigsten sind &, <, >, " und '.
Numerische Entitäten können jeden Unicode-Zeichencode darstellen und sind daher universell einsetzbar. Für Zeichen ohne benannte Entität ist die numerische Variante die einzige Option.