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
Omzetters

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