HTML-Encoder
Konvertiere Sonderzeichen in HTML-Entities für eine saubere Textausgabe.
Möchtest du auf einer Website Code wie <div> als reinen Text anzeigen, anstatt ein tatsächliches HTML-Element zu erzeugen, musst du die Zeichen maskieren. Die HTML-Kodierung ersetzt Zeichen mit struktureller Bedeutung durch Entities, die der Browser einfach als Text darstellt.
Fünf kritische Zeichen beim HTML-Encoding
Die Zeichen < und > definieren Tags, das & leitet Entities ein, und einfache sowie doppelte Anführungszeichen fassen Attributwerte ein. Sobald du diese fünf Zeichen kodierst, löst du fast jedes Darstellungsproblem.
Besonders das kaufmännische Und wird oft übersehen. Es muss stets zuerst kodiert werden: Wandelst du vorher die spitzen Klammern um, wird das & der neu erzeugten Entities danach ebenfalls maskiert. Das führt zu unschönen Gebilden wie &lt; im Quelltext.
So nutzt du den HTML-Encoder
- Füg den Text oder das Markup ein, das du im Browser lesbar darstellen willst.
- Klick auf die Schaltfläche zum Kodieren.
- Kopier das erzeugte Ergebnis mit den ersetzten Entities.
- Füg den maskierten Text in deine Vorlage, dein CMS oder deinen Quellcode ein.
- Prüf die fertige Seite im Webbrowser, um sicherzustellen, dass alles als sichtbarer Text und nicht als Element interpretiert wird.
Wichtige HTML-Entities in der Übersicht
| Zeichen | Entity | Alternative Schreibweise |
|---|---|---|
| & | & | & |
| < | < | < |
| > | > | > |
| " | " | " |
| ' | ' | ' |
| Geschütztes Leerzeichen | |   |
Sicherheitskontext beim Maskieren von HTML-Code
Das Maskieren von Ausgaben ist ein unverzichtbarer Baustein im Schutz gegen Cross-Site-Scripting (XSS). Entscheidend ist jedoch der Zeitpunkt: Die Kodierung gehört exakt in den Moment, in dem ein Wert im Template ausgegeben wird, und muss zu dessen Kontext passen.
HTML-Fließtext verlangt andere Regeln als HTML-Attribute, und JavaScript-Blöcke oder URLs erfordern wiederum eigene Strategien. Ein für Fließtext sicherer Wert kann in einem Attribut gefährlich bleiben. Verlass dich daher idealerweise auf kontextsensitive Escaping-Funktionen moderner Webframeworks, statt Inhalte schon vor der Speicherung in der Datenbank pauschal zu maskieren.
Häufige Fragen zum HTML-Encoder
Was bewirkt die Kodierung von HTML-Zeichen?
Sie ersetzt Zeichen mit syntaktischer Bedeutung durch festgelegte Entity-Referenzen, sodass Browser den Inhalt als reinen Text darstellen und nicht als Steuercode interpretieren.
Welche Zeichen sollten mindestens kodiert werden?
Unverzichtbar sind das kaufmännische Und, spitze Klammern sowie Anführungszeichen. Das Et-Zeichen muss dabei zuerst verarbeitet werden, um spätere Doppelkodierungen zu vermeiden.
Bietet HTML-Encoding vollständigen Schutz vor XSS-Angriffen?
Es ist ein zentraler Pfeiler der Abwehr, reicht allein aber nicht aus. Der Schutz greift nur, wenn die Maskierung passend zum Zielkontext wie Fließtext, Attributwert, URL oder Script-Block erfolgt.
Wofür wird das geschützte Leerzeichen verwendet?
Es verhindert an der jeweiligen Stelle einen automatischen Zeilenumbruch und wird vom Browser nicht mit benachbarten Leerzeichen zusammengezogen, beispielsweise zwischen Zahlenwerten und Einheiten.
Sollte Text vor dem Speichern in der Datenbank kodiert werden?
Nein, Daten sollten unverändert gespeichert und erst direkt bei der Ausgabe für das jeweilige Format wie HTML, JSON oder CSV passend maskiert werden.