PentestGids

PentestGids.nl

BlogContactFAQ

Wat is Cross Site Scripting (XSS)?

Clock

4 min. leestijd

Inhoudsopgave

  • Wat kun je doen om XSS aanvallen te voorkomen?

XSS is de meest voorkomende kwetsbaarheid op het internet. Dit is de overkoepelende term voor stukjes code (scripts) die worden uitgevoerd door websites zonder dat ze dat willen. Om dit beter te begrijpen is het goed om te weten dat de browser alleen HTML, CSS en JavaScript kan lezen. HTML (HyperText Markup Language) is de code die ervoor zorgt dat tekst een bepaalde vorm krijgt, zodat de browser (e.g. Chrome, Firefox, Safari) de tekst als webpagina kan presenteren. Zo zorgt HTML ervoor dat je links, afbeeldingen, video's en tekst goed kan weergeven op een scherm. CSS (Cascading Style Sheets) zorgen ervoor dat de HTML elementen een bepaalde opmaak krijgen. Daarnaast heeft de browser een ingebouwde interpreter om Javascript te kunnen uitvoeren.


Javascript is een programmeertaal die is ontwikkeld door Brendan Eich in opdracht van Netscape in de jaren 90, waardoor de webpagina interactief gemaakt kan worden. Met de komst van Javascript code of ‘scripts’ is de gebruikerservaring van websites enorm toegenomen. Met JavaScript kunnen acties op een webpagina, zoals het invoeren van tekst of een muisklik, geregistreerd worden en kan zonder dat je het door hebt informatie worden uitgewisseld met een server. Tegenwoordig maakt bijna iedere webpagina gebruik van Javascript.

Cross Site Scripting Drawing

Bron: https://www.md3.pt/en/cross-site-scripting-the-most-commonly-underestimated-web-vulnerability/

XSS aanvallers maken gebruik van webpagina’s die niet voorbereid zijn op Javascript die ze niet zelf geschreven hebben. Dat wil zeggen, de aanvaller heeft zelf een script geschreven met een kwaadaardig doel, zoals het stelen van je inloggegevens. De aanvaller wil dat dit script wordt uitgevoerd in de browser van een andere gebruiker. Om dit te bewerkstelligen, probeert de aanvaller het script te verzenden naar de server. Dit kan op verschillende manieren gebeuren, bijvoorbeeld door het via een invulformulier mee te sturen. De onwetende server kan dit kwaadaardige script opslaan in de database als platte tekst. Op het moment dat dit stukje tekst vervolgens weer opgehaald wordt van de server om te presenteren aan een gebruiker, zal de browser de data herkennen als Javascript en het script uitvoeren in de browser van het slachtoffer.

Wat kun je doen om XSS aanvallen te voorkomen?

Ten eerste is het belangrijk dat je ervoor zorgt dat gebruikers geen Javascript code kunnen sturen naar de server. Op plekken met formulieren of invulvelden wordt doorgaans data van de gebruiker naar de server gestuurd. Op deze plekken kunnen validaties ingebouwd worden om ongewenste scripts te weigeren. Ten tweede is het cruciaal om na te gaan waar de tekst vandaan komt die op je wil gebruiken om op jouw website aan de gebruiker te tonen. Als deze tekst het resultaat is van de input van de gebruiker zelf of een andere gebruiker, dan moet deze tekst altijd als platte tekst weergegeven worden. Hierdoor kan de browser niet herkennen wat de betekenis van de tekst is en zal het script niet worden geïnterpreteerd als Javascript.


GESCHREVEN DOOR

Bas de Jong, Software Developer en freelance schrijver voor PentestGids.nl

Bas ontwikkelt software voor een SaaS projectmanagement tool. Daarnaast schrijft Bas over cyber security om mensen het belang van cyber security te laten zien.

PentestGids

PentestGids.nl is een informatief platform. Het biedt overzicht waar pentests het beste kunnen worden uitgevoerd. Lees alles wat je moet weten over een pentest.

SOORTEN PENTESTS

Black Box pentest

© 2022 Alles wat je moet weten over een pentest | Pentestgids.nl, Inc. All rights reserved.