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. < 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 (<, &, ©) of numeriek (<, &). 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 <, waardoor het als tekst wordt weergegeven en scriptuitvoering wordt voorkomen.
Wanneer gebruik ik & versus & in HTML?
In HTML-attributen en -inhoud moet & worden gecodeerd als & 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 & 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.