Skip to main content
CheckTown
Dev Tools

String Escaping: Speciale tekens correct afhandelen in code

Gepubliceerd 6 min lezen
In dit artikel

Wat is string-escaping?

String-escaping is het toevoegen van speciale tekens zodat tekens met syntactische betekenis als letterlijke tekst worden behandeld. Elke programmeertaal en elk dataformaat reserveert bepaalde tekens voor structurele doeleinden — aanhalingstekens in JSON, haakjes in HTML, procenttekens in URLs.

Zonder juiste escaping veroorzaken strings met speciale tekens parseerfouten, beveiligingslekken zoals XSS en SQL-injectie, of produceren ze beschadigde uitvoer.

Escape-formaten uitgelegd

Verschillende contexten hebben verschillende escape-regels. Hier zijn de meest voorkomende formaten:

  • JSON-escaping — escape aanhalingstekens (\"), backslashes (\\) en besturingstekens (\n, \t, \r)
  • HTML-escaping — converteert < naar &lt;, > naar &gt;, & naar &amp;. Voorkomt dat browsers inhoud als HTML-tags interpreteren
  • URL-codering — vervangt onveilige tekens door %XX hex-codes (spatie wordt %20)
  • SQL-escaping — verdubbelt enkele aanhalingstekens (' wordt ''). Voorkomt SQL-injectieaanvallen
  • Regex-escaping — plaatst een backslash voor metatekens zoals . * + ? om ze letterlijk te matchen

Veelvoorkomende toepassingen

String-escaping komt voor in de hele softwareontwikkelingscyclus:

  • Gebruikersinvoer insluiten — bij het invoegen van door gebruikers verstrekte waarden in JSON, HTML of SQL voorkomt juiste escaping fouten en kwetsbaarheden
  • Formulierinvoer opschonen — webapplicaties moeten ingediende inhoud escapen voor weergave om XSS-aanvallen te voorkomen
  • API-payloads bouwen — bij het opbouwen van JSON-requestbodies moeten alle stringwaarden correct ge-escaped zijn

Probeer gratis — geen aanmelding vereist

Probeer de String Escape Tool →

Escapen vs Coderen: wat is het verschil?

Escapen en coderen worden vaak verward omdat beide tekst transformeren. Escapen voegt markers toe zodat tekens letterlijk worden behandeld. De uitvoer blijft in hetzelfde formaat.

Coderen converteert gegevens van de ene representatie naar een compleet andere. Base64-codering zet binaire data om in ASCII-tekst. Het belangrijkste onderscheid: escapen behoudt het formaat, coderen verandert het.

Tips en best practices

Juiste string-escaping voorkomt bugs, beveiligingslekken en datacorruptie:

  • Escape op de grens — escape strings altijd op het punt waar ze een nieuwe context binnenkomen
  • Vermijd dubbele escaping — als je framework de uitvoer al escaped, produceert handmatige escaping zichtbare backslashes
  • Gebruik contextspecifieke escaping — HTML-escaping beschermt niet tegen SQL-injectie en vice versa

Veelgestelde vragen

Wanneer moet ik handmatig escapen vs een bibliotheek gebruiken?

Geef altijd de voorkeur aan bibliotheekfuncties. Talen bieden ingebouwde escape-hulpmiddelen die randgevallen correct afhandelen.

Voorkomt string-escaping alle XSS-aanvallen?

HTML-escaping voorkomt de meeste XSS-aanvallen maar niet alle vectoren. Inhoud in JavaScript-, CSS- of URL-contexten vereist aanvullende specifieke sanitisatie. CSP-headers bieden de sterkste bescherming.

In welke volgorde moet ik escapen als data door meerdere formaten gaat?

Escape eerst voor de binnenste context en werk dan naar buiten. Bijvoorbeeld: om een string in JSON in te sluiten die in een HTML-attribuut komt, eerst JSON-escapen, dan HTML-escapen.

Gerelateerde Tools