and it is rendered as HTML, the script executes. Entity encoding converts < to < making it render as text, preventing script execution." } }, { "@type": "Question", "name": "When should I use & versus & in HTML?", "acceptedAnswer": { "@type": "Answer", "text": "In HTML attributes and content, & must be encoded as & whenever it is not part of an HTML entity. Unencoded & in HTML is a parsing error. In URLs within href attributes, & must also be encoded as & to be valid HTML (though browsers are forgiving)." } }, { "@type": "Question", "name": "Does HTML entity encoding protect against SQL injection?", "acceptedAnswer": { "@type": "Answer", "text": "No. HTML entity encoding only protects against HTML injection (XSS). For SQL injection prevention, use parameterized queries or prepared statements in your database layer. These are separate attack vectors requiring different defenses — never rely on HTML encoding to prevent SQL injection." } } ] }
Skip to main content
CheckTown
Konverter

HTML-Entity-Kodierung: XSS verhindern und Sonderzeichen darstellen

Veröffentlicht 5 Min. Lesezeit
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 (&lt;, &amp;, &copy;) oder numerisch (&#60;, &#38;) 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 &lt; um, sodass es als Text dargestellt wird und die Skriptausführung verhindert wird.

Wann sollte ich &amp; statt & in HTML verwenden?

In HTML-Attributen und -Inhalten muss & als &amp; 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 &amp; 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.

Verwandte Tools