Skip to main content
Alle Termen Glossary

Stored XSS

Definition

Stored XSS (Cross-Site Scripting) treedt op wanneer kwaadaardige scripts permanent worden opgeslagen op doelservers en later worden weergegeven aan gebruikers die getroffen pagina's bezoeken. Dit type XSS is bijzonder gevaarlijk omdat het alle bezoekers van de gecompromitteerde pagina treft. Preventie vereist juiste inputvalidatie, output-encoding en content security policies.

Hoe stored XSS werkt

Stored cross-site scripting, ook wel persistent XSS genoemd, treedt op wanneer een applicatie door een aanvaller aangeleverde inhoud accepteert, opslaat en die later aan andere gebruikers serveert zonder correcte encoding. Het kwaadaardige script wordt één keer geschreven, in een reactieveld, een productreview, een forumpost, een gebruikersprofiel of een supportticket, en voert vervolgens uit in de browser van elke bezoeker die de getroffen pagina laadt. Anders dan bij reflected XSS is er geen geprepareerde link of social engineering per slachtoffer nodig; de payload wacht op de server en gaat automatisch af. Omdat de geïnjecteerde markup onderdeel wordt van de normale inhoud van de pagina, kan hij blijven bestaan zolang het record bestaat en nieuwe bezoekers blijven infecteren.

Waarom stored XSS ertoe doet

Stored XSS is de gevaarlijkste XSS-variant omdat hij zichzelf verspreidt en iedereen raakt die de vergiftigde pagina bekijkt. Een payload die in een populaire thread of een gedeeld profiel is geplaatst, kan in duizenden sessies draaien, en als hij ergens belandt waar een beheerder kijkt, kan hij escaleren tot een volledige overname van het account of de applicatie. Draaiend onder de origin van de site kan het script sessietokens en niet-HttpOnly cookies stelen, toetsaanslagen en formuliergegevens vastleggen, zich als het slachtoffer voordoen of zich in meer records nestelen. Historische XSS-wormen verspreidden zich precies zo, door zichzelf toe te voegen aan elk profiel dat ze aanraakten en bij elke weergave nieuwe gebruikers te infecteren.

Hoe je je tegen stored XSS verdedigt

De verdediging ligt vooral aan de server- en codekant: valideer en saneer invoer bij binnenkomst, encodeer output voor de exacte context bij uitgang, en schoon alle rijke HTML op met een gecontroleerde sanitizer voordat deze de DOM bereikt. Een Content Security Policy beperkt wat een geïnjecteerd script kan doen, zelfs als er eentje doorglipt. cside vervangt deze controles voor je eigen applicatiecode niet. Waar het helpt, is de runtime-laag in de browser: het routeert third-party scripts via een Script-methode, analyseert de JavaScript-payload die daadwerkelijk draait, kan kwaadaardig gedrag zoals data-exfiltratie in real time blokkeren en bewaart forensische verslagen die PCI DSS 6.4.3 en 11.6.1 ondersteunen.

Definitie

Waarom wordt stored XSS als erger beschouwd dan reflected XSS?

Omdat de payload server-side wordt opgeslagen en aan iedereen wordt geserveerd die de getroffen pagina opent, heeft hij geen link of klik per slachtoffer nodig. Eén injectie kan in de sessie van elke bezoeker draaien, en als een beheerder hem bekijkt kan de aanvaller verhoogde toegang krijgen, wat stored XSS een veel grotere impactradius geeft.

Definitie

Voorkomt het opslaan van gebruikersinhoud in een database of als Markdown stored XSS?

Nee. De kwetsbaarheid gaat over hoe inhoud wordt gerenderd, niet over waar ze wordt bewaard. Als opgeslagen gegevens later als HTML in een pagina worden ingevoegd zonder encoding of sanitatie, zullen ze uitvoeren. Markdown kan zelfs risico toevoegen als het ruwe HTML of onveilige links toestaat, dus de output moet nog steeds gesaneerd worden.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Boek een demo

Wil je dit doornemen met een engineer?

Dertig minuten, op je eigen site. Geen slides.

We laten je zien:

Welke scripts van derden er nu op je site draaien
Hoe je ervoor staat op PCI DSS 6.4.3 en 11.6.1
Welk deel van je verkeer uit bots en AI-agents bestaat

Liever gewoon een vraag stellen?

Vrije momenten zoeken…

Alleen echte mensen. Wij merken het.

Lukt het boeken niet? Agenda in een nieuw tabblad openen

Wat wil je oplossen?

Vertel het ons in één zin, dan komen we terug met iets bruikbaars in plaats van een standaardverhaal.

Waar we meestal mee helpen:

Zien welke scripts van derden op je site draaien
Bewijs voor PCI DSS 6.4.3 en 11.6.1
Bots, AI-agents en accountovername

Liever meteen een moment inplannen? Kies een tijdstip