Cross-site scripting (XSS)


Cross-site scripting, vaak afgekort als XSS, is een soort beveiligingslek dat voorkomt in webapplicaties. Het stelt een aanvaller in staat om kwaadaardige scripts in de inhoud van een betrouwbare website of applicatie te injecteren. Wanneer andere gebruikers die website of applicatie bezoeken, worden die scripts uitgevoerd op hun computers, vaak zonder dat ze het weten.

Stel je voor dat een website een forum heeft waar gebruikers reacties kunnen plaatsen. Als de website niet goed controleert of filtert wat gebruikers invoeren, kan een aanvaller een stukje kwaadaardige code in een reactie plaatsen. Wanneer andere gebruikers die reactie bekijken, wordt de code uitgevoerd en kan de aanvaller bijvoorbeeld toegang krijgen tot hun cookies, sessie-tokens, of zelfs persoonlijke gegevens.

Er zijn verschillende typen XSS-aanvallen, zoals:

  • Gereflecteerde XSS: De kwaadaardige script wordt via een link verzonden en wordt alleen uitgevoerd wanneer de link wordt aangeklikt.
  • Opgeslagen XSS: De kwaadaardige code wordt op de server opgeslagen, bijvoorbeeld in een database, en wordt uitgevoerd elke keer als de geïnfecteerde pagina wordt geladen.
  • DOM-based XSS: De aanval vindt plaats binnen de DOM (Document Object Model) van de pagina, vaak door manipulatie van het client-side script van de website.

Om jezelf tegen XSS te beschermen, is het belangrijk om input van gebruikers goed te controleren en te filteren (vooral input die in webpagina's wordt weergegeven), en om moderne beveiligingsfeatures zoals Content Security Policy (CSP) te gebruiken. Voor website-eigenaren en ontwikkelaars is het cruciaal om ervoor te zorgen dat hun sites en applicaties goed zijn geprogrammeerd en beveiligd tegen dit soort aanvallen.