πŸ›‘οΈ
Beveiliging

XSS Cross-Site Scripting bescherming: zo pak je het aan

πŸ“… 8 October 2026 ✏️ 8 October 2026 ⏱ 4 min leestijd

Wat is XSS en hoe bescherm je je website ertegen? Praktische stappen voor input validatie, headers, CSP en veilige hosting.

Cross-Site Scripting (XSS) is een aanvalstechniek waarbij een kwaadwillende script-code injecteert in een website, die vervolgens door de browser van andere bezoekers wordt uitgevoerd. Dit kan leiden tot gestolen sessies, misbruik van accounts of ongewenste acties namens de gebruiker. Je beschermt je site door invoer altijd te valideren en te escapen, beveiligingsheaders zoals Content-Security-Policy in te stellen, software up-to-date te houden en gebruik te maken van een goed beveiligd hostingplatform.

Wat is XSS en hoe werkt het

Bij XSS plaatst een aanvaller schadelijke JavaScript-code op een pagina, bijvoorbeeld via een formulierveld, zoekbalk of commentaarveld. Als deze invoer onbewerkt wordt weergegeven op de website, voert de browser van iedere bezoeker die code gewoon uit. De browser kan het verschil niet zien tussen legitieme code van de website en de ingesloten aanvalscode, omdat beide vanaf hetzelfde domein lijken te komen.

Het gevolg kan variΓ«ren van vervelend (pop-ups, omleidingen) tot ernstig: diefstal van sessiecookies, overname van accounts of het stiekem uitvoeren van acties namens een ingelogde gebruiker, zoals het wijzigen van gegevens of het plaatsen van bestellingen.

InvoerveldScript zonderfilteringBrowserbezoeker

Soorten XSS-aanvallen

Er zijn drie hoofdtypen die je moet kennen om de juiste maatregelen te nemen.

Stored XSS wordt permanent opgeslagen op de server, bijvoorbeeld in een reactie onder een blogpost of in een forumbericht. Iedereen die de pagina bezoekt, voert de kwaadaardige code uit.

Reflected XSS zit verstopt in een link of URL-parameter. De code wordt direct teruggestuurd in de serverrespons en uitgevoerd zodra het slachtoffer op de link klikt.

DOM-based XSS speelt zich volledig af in de browser, waarbij JavaScript op de pagina onveilig omgaat met gebruikersinvoer zonder dat de server hier iets van merkt.

πŸ’‘ Tip: Test formulieren en zoekvelden regelmatig met onschuldige testinvoer zoals een stuk tekst met scripttags, om te zien of je website deze invoer zomaar weergeeft.

Concrete beschermingsmaatregelen

XSS voorkomen is vooral een kwestie van invoer nooit vertrouwen en uitvoer altijd correct weergeven.

1

Valideer en filter invoer

Accepteer alleen het type gegevens dat je verwacht, bijvoorbeeld alleen cijfers in een postcodeveld. Wijs onverwachte tekens af in plaats van ze te proberen op te schonen.

2

Escape uitvoer

Zorg dat speciale tekens zoals en ” worden omgezet naar hun HTML-entiteiten voordat gebruikersinvoer op de pagina wordt getoond. De meeste moderne frameworks doen dit standaard, maar controleer dit bij handgeschreven code.

3

Stel een Content-Security-Policy in

Met een CSP-header bepaal je van welke bronnen scripts mogen worden geladen. Dit blokkeert ingesloten of externe kwaadaardige scripts, zelfs als een aanvaller erin slaagt code te injecteren.

4

Gebruik HttpOnly en Secure cookies

Door sessiecookies als HttpOnly te markeren, kan JavaScript ze niet uitlezen, waardoor diefstal via XSS veel lastiger wordt.

5

Houd CMS, plugins en thema’s up-to-date

Veel XSS-kwetsbaarheden ontstaan door verouderde software. Update WordPress, Plesk-extensies en andere componenten zodra er een update beschikbaar is.

De rol van je hostingomgeving

Naast code-niveau maatregelen helpt een goed ingerichte serveromgeving om de impact van XSS te beperken. Denk aan actuele PHP- en softwareversies, een firewall die verdachte requests blokkeert, en scheiding tussen websites zodat een kwetsbaarheid op de ene site niet overslaat naar de andere.

Bij Tandata vind je dergelijke instellingen, zoals SSL, PHP-versies en firewallregels, overzichtelijk terug in het Plesk-controlepaneel bij je webhosting. Twijfel je of je huidige provider dit goed op orde heeft, bekijk dan wat er bij overstappen naar Tandata allemaal komt kijken. Ook e-mailformulieren op je site zijn een veelvoorkomend doelwit voor scriptinjectie, dus check ook de instellingen van je zakelijke e-mail op misbruikgevoelige formulieren.

Veelgestelde vragen

Is XSS hetzelfde als SQL-injectie?

Nee. SQL-injectie richt zich op de database, terwijl XSS zich richt op de browser van de bezoeker. Beide ontstaan door onvoldoende validatie van invoer, maar vragen om andere beschermingsmaatregelen.

Kan een gratis SSL-certificaat XSS voorkomen?

Nee, SSL versleutelt alleen het dataverkeer tussen browser en server. Het beschermt niet tegen het injecteren of uitvoeren van scripts op een pagina.

Beschermt een CMS zoals WordPress mij automatisch tegen XSS?

WordPress heeft ingebouwde functies om invoer te escapen, maar plugins en thema’s van derden kunnen alsnog kwetsbaarheden bevatten. Blijf daarom alles up-to-date houden.

Hoe merk ik dat mijn site slachtoffer is van XSS?

Vaak merk je het pas als bezoekers vreemde pop-ups, omleidingen of ongeautoriseerde acties melden. Regelmatige scans en logcontrole helpen om het eerder te signaleren.

Waar vind ik hulp bij het beveiligen van mijn website?

In de kennisbank vind je meer uitleg over beveiligingsinstellingen, en via WhatsApp, ticket of e-mail staat de supportafdeling klaar om mee te denken.

Conclusie

XSS is een veelvoorkomende maar goed te voorkomen kwetsbaarheid. Door invoer te valideren, uitvoer te escapen, een Content-Security-Policy in te stellen en software actueel te houden, sluit je de belangrijkste deuren voor aanvallers. Een veilige, actuele hostingomgeving met firewall en isolatie tussen sites vormt daarbij een stevige basis.

Bekijk webhosting β†’

Was dit artikel nuttig?