Woordenlijst

Wat is CSRF (Cross Site Request Forgery)?

20 mei 2026

Cross Site Request Forgery (CSRF, ook XSRF of Session Riding) is een webaanval die een ingelogde gebruiker dwingt een ongewenste actie uit te voeren op een applicatie waar hij is geauthenticeerd. De aanvaller maakt een kwaadaardige link, afbeelding of formulier op een site die hij beheert. Wanneer het slachtoffer die pagina bezoekt terwijl hij nog is ingelogd op de doelsite (online bankieren, WordPress admin, webmail), stuurt de browser de aanvraag automatisch mee met het geldige sessie cookie. De server kan vervalst niet van echt onderscheiden en voert de actie uit. CSRF stond op plaats 5 in de OWASP Top 10 van 2007 en 2010, viel uit de Top 10 in 2017 dankzij ingebouwde framework verdediging, en staat in OWASP Top 10 2021 onder A01 Broken Access Control. De Samy worm op MySpace (oktober 2005, ruim 1 miljoen besmette profielen in 20 uur) is het bekendste CSRF incident.

Hoe werkt een CSRF aanval?

  1. Slachtoffer is ingelogd op de doelsite.
  2. Doelsite voert state veranderende acties uit op basis van cookies alleen.
  3. Slachtoffer bezoekt een door de aanvaller beheerde pagina.
<img src="https://bank.example.nl/overboeken?naar=AANVALLER&bedrag=10000">

Typische doelwitten

  • Bankieren en betalen.
  • Webmail.
  • Adminpanelen.
  • Sociale netwerken (Samy worm).
  • E-commerce.
  • Routers en IoT.

CSRF vs XSS

EigenschapCSRFXSS
EffectDwingt aanvraagVoert aanvaller JS uit
Code op doelNeeJa
Leest antwoordNeeJa
Omzeilt CSRF tokenNeeJa
HoofdverdedigingTokens, SameSiteEncoding, CSP

Standaard verdedigingen

  1. Anti CSRF token (synchronizer token).
  2. SameSite cookie (default Chrome sinds februari 2020).
  3. Double submit cookie.
  4. Origin en Referer controleren.
  5. Custom header voor AJAX.
  6. Heraanmelden voor kritieke acties.
  7. POST in plaats van GET voor state wijzigingen.

WordPress bescherming

WordPress gebruikt Nonces. Functies: wp_nonce_field(), wp_create_nonce(), check_admin_referer(), check_ajax_referer(). Levensduur 24 uur.

SPA en REST API

  • SameSite=Strict op sessie cookie.
  • X-CSRF-Token header bij elke aanroep.
  • JWT in Authorization: Bearer elimineert CSRF maar vergroot XSS risico.

Reele incidenten

  • Samy worm op MySpace, oktober 2005.
  • YouTube 2008, Netflix 2006.
  • WordPress plugins in 2024 (Forminator, LiteSpeed Cache).
  • Routers (studie 2018, ruim 70 procent kwetsbaar).

Hoe helpt InspectWP?

InspectWP analyseert Set-Cookie headers en rapporteert SameSite en Secure attributen.

Controleer nu uw WordPress-site

InspectWP analyseert uw WordPress-site op beveiligingsproblemen, SEO-problemen, GDPR-naleving en prestaties — gratis.

Analyseer uw site gratis