---
title: "Cross-site scripting (XSS): uitleg en hoe je het voorkomt"
description: "XSS (cross-site scripting) is een aanval waarbij een kwetsbare website de JavaScript van een aanvaller naar bezoekers stuurt."
canonical: https://www.keurigonline.nl/begrippenlijst/xss
last_modified: 2025-12-18
---

[Terug naar begrippenlijst](https://www.keurigonline.nl/begrippenlijst)

# XSS

XSS (cross-site scripting) is een aanval waarbij een kwetsbare website de JavaScript van een aanvaller naar bezoekers stuurt.

Actueel: [WordPress updateproces beveiligen tegen RCE: update 7.1.4](https://www.keurigonline.nl/blog/wordpress-updateproces-beveiligen-tegen-rce)

XSS (cross-site scripting) is een aanval waarbij een aanvaller eigen JavaScript in een kwetsbare website smokkelt, zodat die code draait in de browser van gewone bezoekers. De browser ziet het script als onderdeel van de site en geeft het dezelfde rechten als de echte code.

Het gaat mis waar een site invoer van buiten ongefilterd terugtoont, zoals een zoekterm, een reactie of een profielnaam. Bij stored XSS bewaart de site het script, bijvoorbeeld in een reactie onder een blog, en krijgt elke lezer het voorgeschoteld. Bij reflected XSS zit het script in een link waarop het slachtoffer moet klikken, en bij DOM-based XSS ontstaat het lek in de JavaScript van de pagina zelf.

Met zo'n script kan een aanvaller sessiecookies stelen, formulieren uitlezen of handelingen uitvoeren namens een ingelogde beheerder. Hoe snel dat gaat, liet de Samy-worm in 2005 zien: via een XSS-lek in MySpace bereikte hij binnen 20 uur meer dan een miljoen gebruikers. De basisverdediging heet output-encoding. De site zet tekens als < en > dan om voordat ze op de pagina komen, zodat de browser ze als tekst toont en niet als code uitvoert.

Bij WordPress-sites kan een XSS-lek in een plugin of thema zitten, dus houd die bijgewerkt. Een extra vangnet is een Content-Security-Policy-header, die je net als andere headers met Header set in je .htaccess zet. Met script-src 'self' laadt de browser alleen scripts van je eigen domein. Test zo'n regel eerst als Content-Security-Policy-Report-Only, want een te strenge policy blokkeert ook je eigen inline scripts en externe diensten zoals statistieken.

## Geschiedenis

De term cross-site scripting ontstond op 16 januari 2000, toen een kleine groep beveiligingsengineers bij Microsoft namen voor dit soort aanvallen bedacht. De naam verwees oorspronkelijk naar het laden van een aangevallen webapplicatie vanaf een ongerelateerde aanvalssite ([Microsoft, 2009](https://learn.microsoft.com/en-us/archive/blogs/dross/happy-10th-birthday-cross-site-scripting)). Later ging de term over alle vormen van ingevoegde scripts, ook binnen één site ([Wikipedia](https://en.wikipedia.org/wiki/Cross-site_scripting)).

Belangrijke mijlpalen:

- **2000:** Microsoft-engineers introduceren de naam cross-site scripting
- **2005:** de [Samy-worm](https://en.wikipedia.org/wiki/Samy_(computer_worm)) verspreidt zich op 4 oktober via een XSS-lek in MySpace naar meer dan een miljoen gebruikers in 20 uur

## Bronnen

1. **OWASP** - [Cross Site Scripting Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html)
2. **MDN Web Docs** - [Cross-site scripting (XSS)](https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/XSS)
3. **MDN Web Docs** - [Content Security Policy (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CSP)
4. **PortSwigger Web Security Academy** - [What is cross-site scripting (XSS)?](https://portswigger.net/web-security/cross-site-scripting)
5. **KeurigOnline Helpcentrum** - [Hoe schakel ik HSTS in? (headers instellen via .htaccess)](https://help.keurigonline.nl/article/117-hoe-schakel-ik-hsts-in)

## Gerelateerde artikelen

WordPress 30 okt 2026

[WordPress updateproces beveiligen tegen RCE: update 7.1.4](https://www.keurigonline.nl/blog/wordpress-updateproces-beveiligen-tegen-rce)

Wijst een van deze punten op een hack, ga er dan van uit dat je site gehackt is. Een gehackte site herstel je niet met een update of een plugin. [Neem contact met ons op](https://keurigonline.nl/contact), dan bekijken we samen wat we op de server zien en wat je opties zijn.

## De andere 21 fixes in het kort

Naast de race condition dicht 7.1.4 nog 21 andere kwetsbaarheden[\[6\]](https://www.cyberkendra.com/2026/10/wordpress-7-1-4-security-update-22-vulnerabilities.html). Daaronder vallen:

- **Stored XSS in blocks**, onder meer via speciaal opgemaakte blockmarkup en in de Categories-, Playlist- en Image-blocks.
- **Stored XSS en prototype pollution in de Interactivity API**, die ook tot een denial of service kan leiden.
- **Problemen in de Customizer**: een stored XSS in selective refresh, en niet-gepubliceerde changesets die bezoekers zonder account konden vinden.

Beveiliging 29 jun 2026

[Website beveiligen tegen AI-phishing: stappenplan voor 2026](https://www.keurigonline.nl/blog/website-beveiliging-phishing-ai)

Een Web Application Firewall (WAF) filtert kwaadaardig verkeer voordat het je applicatie bereikt. Voor WordPress: Wordfence of Cloudflare (gratis tier volstaat voor de meeste MKB-sites). Concrete instellingen: rate-limiting op `/wp-login.php` (maximaal 10 verzoeken per minuut per IP) en blokkeer `/xmlrpc.php` voor niet-API-clients. WAF biedt ook *virtual patching*: een kwetsbare plugin is al beveiligd op firewallniveau, nog voor de update uitkomt.

### Content Security Policy: stop XSS aan de bron

Een Content Security Policy (CSP) vertelt de browser welke scripts en bronnen geladen mogen worden. Begin met de header `Content-Security-Policy-Report-Only` om schendingen te loggen zonder de site te breken. Scherp daarna geleidelijk aan. Aanvullende security headers voor HSTS, X-Frame-Options en Referrer-Policy voeg je toe via `.htaccess`. Kant-en-klare snippets vind je in ons overzicht van [20 .htaccess code snippets](https://www.keurigonline.nl/blog/20-htaccess-code-snippets-voor-snellere-websites).

Beveiliging 10 jan 2026

[ WordPress beveiligen: 12 praktische tips \[2026 gids\] ](https://www.keurigonline.nl/blog/wordpress-beveiligen)

Stel dat er een security vulnerability ontdekt wordt in een populaire plugin. De developer publiceert dan een patch. Hackers weten binnen enkele uren welke sites nog niet geüpdatet zijn. Ze scannen automatisch miljoenen sites om die specifieke vulnerability te vinden.

Update je tijdig? Dan is je site veilig. Update je niet? Dan wordt je site een doelwit.

**Voorbeeld:** De Elementor plugin had in 2023 een kritieke XSS vulnerability. Deze kreeg de code CVE-2023-32243. Binnen 48 uur na publicatie waren er meer dan 3 miljoen scan pogingen op niet-geüpdatete sites.

### Wat moet je updaten?

Dit zijn de vijf belangrijkste componenten die je moet updaten:

1. **WordPress core** - Elke nieuwe versie bevat security patches
