In diesem Artikel
Was sind HTML-Entities?
HTML-Entities sind spezielle Codes, die Zeichen darstellen, die in HTML entweder eine besondere Bedeutung haben oder sich nicht direkt eingeben lassen. Zum Beispiel ist < die HTML-Entity für das Zeichen < (Kleiner-als-Zeichen), das andernfalls als Beginn eines HTML-Tags interpretiert würde.
Entities können benannt (<, &, ©) oder numerisch (<, &) sein. Benannte Entities sind besser lesbar; numerische Entities funktionieren für jedes Unicode-Zeichen, auch ohne eine spezielle benannte Entity.
Wie die HTML-Entity-Kodierung funktioniert
Der Encoder durchsucht den Text nach Zeichen, die maskiert werden müssen, und ersetzt sie durch ihre Entity-Entsprechungen.
- Kritisches Maskieren — < > & " ' werden immer maskiert, um HTML-Injection und XSS zu verhindern
- Erweitertes Maskieren — optional werden alle Nicht-ASCII-Zeichen als numerische Entities kodiert
- Dekodier-Modus — wandelt entity-kodiertes HTML zur Überprüfung wieder in Klartext um
Kostenlos testen – keine Registrierung erforderlich
HTML-Entities kodieren →Wann sollte man HTML-Entity-Kodierung einsetzen
HTML-Entity-Kodierung ist entscheidend für die Sicherheit und für die Darstellung von Sonderzeichen auf Webseiten.
- Anzeige von Nutzerinhalten — kodiere von Nutzern erstellte Inhalte immer, bevor du sie in HTML ausgibst, um XSS-Angriffe zu verhindern
- E-Mail-Vorlagen — kodiere Sonderzeichen in HTML-E-Mail-Vorlagen, um eine korrekte Darstellung sicherzustellen
- Dokumentation — maskiere Codebeispiele in HTML-Dokumentationen, damit spitze Klammern korrekt angezeigt werden
Häufig gestellte Fragen
Was ist XSS und wie verhindert die Entity-Kodierung es?
Cross-Site-Scripting (XSS) ist ein Angriff, bei dem schädliche Skripte in Webseiten eingeschleust werden, die andere Nutzer aufrufen. Wenn ein Nutzer <script>alert('xss')</script> übermittelt und dies als HTML gerendert wird, wird das Skript ausgeführt. Die Entity-Kodierung wandelt < in < um, sodass es als Text dargestellt wird und die Skriptausführung verhindert wird.
Wann sollte ich & statt & in HTML verwenden?
In HTML-Attributen und -Inhalten muss & als & kodiert werden, sofern es nicht Teil einer HTML-Entity ist. Ein nicht kodiertes & in HTML ist ein Parsing-Fehler. In URLs innerhalb von href-Attributen muss & ebenfalls als & kodiert werden, um gültiges HTML zu sein (auch wenn Browser hier nachsichtig sind).
Schützt HTML-Entity-Kodierung vor SQL-Injection?
Nein. HTML-Entity-Kodierung schützt nur vor HTML-Injection (XSS). Zur Vermeidung von SQL-Injection solltest du parametrisierte Abfragen oder Prepared Statements in deiner Datenbankschicht verwenden. Das sind getrennte Angriffsvektoren, die unterschiedliche Schutzmaßnahmen erfordern — verlasse dich niemals auf HTML-Kodierung, um SQL-Injection zu verhindern.