Skip to main content
CheckTown
Converters

HTML Entity Codering: Voorkom XSS en Toon Speciale Tekens

Gepubliceerd 5 min lezen
In dit artikel

Wat zijn HTML-entiteiten?

HTML-entiteiten zijn speciale codes die tekens vertegenwoordigen die een bijzondere betekenis hebben in HTML of niet direct kunnen worden getypt. &lt; is bijvoorbeeld de HTML-entiteit voor het teken < (kleiner-dan-teken), dat anders zou worden geïnterpreteerd als het begin van een HTML-tag.

Entiteiten kunnen benoemd zijn (&lt;, &amp;, &copy;) of numeriek (&#60;, &#38;). Benoemde entiteiten zijn beter leesbaar; numerieke entiteiten werken voor elk Unicode-teken, ook zonder specifieke benoemde entiteit.

Hoe HTML-entiteitscodering werkt

De encoder scant tekst op tekens die geëscaped moeten worden en vervangt ze door hun entiteitsequivalenten.

  • Kritieke escaping — < > & " ' worden altijd geëscaped om HTML-injectie en XSS te voorkomen
  • Uitgebreide escaping — optioneel alle niet-ASCII-tekens coderen als numerieke entiteiten
  • Decoderingsmodus — converteert met entiteiten gecodeerde HTML terug naar gewone tekst voor inspectie

Probeer gratis — geen aanmelding vereist

HTML-entiteiten coderen →

Wanneer HTML-entiteitscodering gebruiken

HTML-entiteitscodering is essentieel voor beveiliging en voor het weergeven van speciale tekens op webpagina's.

  • Weergave van gebruikersinhoud — codeer altijd door gebruikers gegenereerde inhoud voordat je deze in HTML rendert om XSS-aanvallen te voorkomen
  • E-mailsjablonen — codeer speciale tekens in HTML-e-mailsjablonen voor een correcte weergave
  • Documentatie — escape codevoorbeelden in HTML-documentatie zodat punthaken correct worden weergegeven

Veelgestelde vragen

Wat is XSS en hoe voorkomt entiteitscodering dit?

Cross-Site Scripting (XSS) is een aanval waarbij kwaadaardige scripts worden geïnjecteerd in webpagina's die door andere gebruikers worden bekeken. Als een gebruiker <script>alert('xss')</script> indient en dit als HTML wordt gerenderd, wordt het script uitgevoerd. Entiteitscodering converteert < naar &lt;, waardoor het als tekst wordt weergegeven en scriptuitvoering wordt voorkomen.

Wanneer gebruik ik &amp; versus & in HTML?

In HTML-attributen en -inhoud moet & worden gecodeerd als &amp; wanneer het geen deel uitmaakt van een HTML-entiteit. Een niet-gecodeerde & in HTML is een parseringsfout. In URL's binnen href-attributen moet & ook worden gecodeerd als &amp; om geldige HTML te zijn (hoewel browsers hier vergevingsgezind mee omgaan).

Beschermt HTML-entiteitscodering tegen SQL-injectie?

Nee. HTML-entiteitscodering beschermt alleen tegen HTML-injectie (XSS). Gebruik voor het voorkomen van SQL-injectie geparametriseerde query's of prepared statements in je databaselaag. Dit zijn afzonderlijke aanvalsvectoren die verschillende verdedigingsmaatregelen vereisen — vertrouw nooit op HTML-codering om SQL-injectie te voorkomen.

Gerelateerde Tools