Modus Onveilig Cookies gestolen 0 Comments gepost 0 Sim actief

//Plaats een comment

Typ een comment of klik een voorbeeld-payload. Schakel "Escape output" om de fix te zien.

//Voorbeeld-payloads

//Comments-feed (slachtoffer-browser)

Zo ziet een andere bezoeker de pagina. Bij onveilige modus voert de browser het script uit.

Nog geen comments. Post er een.
Cookies van slachtoffer: session=ab12cd34; user=victim42

//Scenario's

Klik om een scenario uit te voeren of de URL te wijzigen.

Server-code (PHP-stijl pseudocode)
// laad een scenario om te zien

//Log ACTIVE

Tijd Actie Payload Result
Nog geen events. Post een comment.

// Wat is XSS?

XSS is een aanval waarbij iemand stiekem JavaScript in een website injecteert. Die code wordt dan uitgevoerd in de browser van een andere bezoeker, alsof het van de site zelf komt. De aanvaller kan dan dingen lezen of doen in naam van het slachtoffer. Cross-Site Scripting (XSS) misbruikt dat een browser scripts uit een trusted origin onbeperkt uitvoert. Komt voor in 3 varianten (reflected, stored, DOM-based) en zit in OWASP Top 10 onder "Injection" / "Cross-Site Scripting".

// Reflected vs Stored vs DOM-based

Reflected: payload zit in de URL/request, server "kaatst" hem terug in de respons. Eénmalig effect. Werkt alleen als iemand op een geprepareerde link klikt.

Stored: payload wordt opgeslagen (bv. in een comment). Treft iedere bezoeker die de pagina opent. Veel gevaarlijker.

DOM-based: server doet niks fout, client-side JS zet onveilige data in de DOM (bv. el.innerHTML = location.hash).

// Hoe stop je XSS?

  • Output-escaping: bij elke echo naar HTML htmlspecialchars() of equivalent.
  • Content Security Policy (CSP): browser mag alleen scripts laden van whitelisted origins, inline-scripts uit.
  • HttpOnly + Secure cookies: JavaScript kan document.cookie niet meer lezen.
  • Gebruik frameworks die default-escaping doen (React JSX, Vue templates, Twig autoescape).
  • Vermijd innerHTML: gebruik textContent of veilige template-functies.