Wat is de beste manier om XSS-aanvallen te voorkomen?

cross-site scripting kwetsbaarheden zijn uitgebuit door aanvallers sinds de vroege jaren 2000, en XSS is op de OWASP Top 10 lijst van kritieke veiligheidsrisico ‘ s voor webapplicaties vanaf 2004. Veel ontwikkelaars, systeembeheerders en zelfs sommige penetratietesters nemen het echter nog steeds niet serieus. Om een effectieve webapplicatie hacker Of defender te worden, moet u de basisprincipes van het voorkomen van XSS-aanvallen begrijpen.

XSS-aanvallen zijn nog steeds probleem

cross-site scripting is een type kwetsbaarheid voor webtoepassingen dat aanvallers in staat stelt om kwaadaardige client-side code te injecteren en uit te voeren in de browser van het slachtoffer binnen een legitieme webtoepassing.

de impact en ernst van succesvolle XSS-aanvallen kunnen variëren. XSS-aanvallen kunnen resulteren in sessiekaping, gestolen tokens, gestolen sessie cookies en cross-site verzoek vervalsing aanvallen. Deze aanvallen kunnen leiden tot gebruikersaccounts worden gecompromitteerd.

een succesvolle XSS-aanval kan een aanvaller ook in staat stellen om gestolen of vervalste cookies te gebruiken om geldige gebruikers na te bootsen. In gevallen waarin de geldige gebruiker beheerdersrechten heeft binnen de toepassing, kan de aanvaller deze rechten vervolgens gebruiken om pagina ‘ s te wijzigen of externe code uit te voeren op de serverzijde van de toepassing.

soorten XSS-aanvallen

er zijn drie soorten XSS-aanvallen: opgeslagen, gereflecteerd en Document Object Model (DOM) gebaseerd.

  1. een opgeslagen XSS-aanval stelt een aanvaller in staat om een kwaadaardig script in te voegen in een kwetsbare pagina, die vervolgens wordt uitgevoerd wanneer een slachtoffer de pagina bekijkt. Opgeslagen XSS wordt beschouwd als het meest schadelijke type van XSS aanval. Bijvoorbeeld, wanneer een aanvaller injecteert een kwaadaardige JavaScript payload rechtstreeks in een kwetsbare webapplicatie, de webbrowser slaat de geïnjecteerde JavaScript payload. Vervolgens, elke keer dat het slachtoffer bezoekt die website of webapplicatie, de kwaadaardige code wordt uitgevoerd.
  2. een gereflecteerde XSS-aanval treedt op wanneer de kwaadaardige lading is ingebed in een link en alleen wordt geactiveerd wanneer de gebruiker op de link klikt. Hier, de kwaadaardige lading wordt niet opgeslagen, maar alleen weergegeven op de webpagina in de vorm van een URL of POST gegevens.
  3. een op DOM gebaseerde XSS-kwetsbaarheid ontstaat wanneer de DOM wordt gebruikt om dynamische inhoud te genereren die gebruikersinvoer bevat die zonder controle kan worden verwerkt. Dit soort aanvallen wordt uitgevoerd met JavaScript in de browser

XSS-aanvalspreventie

om XSS-aanvallen te voorkomen, moeten ontwikkelaars gebruikersinvoer valideren door speciale tekens goed te filteren of te ontsnappen en vervolgens de uitvoer te coderen om opgeslagen XSS-aanvallen en gereflecteerde XSS-aanvallen te voorkomen. De volgende speciale tekens moeten altijd worden uitgefilterd of ontsnapt om te voorkomen dat ze kwaadwillig worden uitgebuit:

<

>

)

(

&

Ontwikkelaars moeten valideren van gebruikersinvoer — bronnen — en het coderen van de uitvoer — wastafels — om te voorkomen dat DOM-based XSS-aanvallen. De eigenschap input source is waar de DOM leest van, en de bron is waar de aanvaller kwaadaardige code kan injecteren om de XSS kwetsbaarheid te benutten. De volgende broneigenschappen moeten worden vermeden:

  • URL
  • documentURI
  • locatie
  • href
  • zoeken
  • hash

Sinks zijn de punten waar de DOM de kwaadaardige tekens of code uitvoert van de invoer — the source — die op zijn beurt naar de webpagina wordt uitgevoerd. Deze sinks moeten worden vermeden om denial-of-service – gebaseerde XSS-aanvallen te voorkomen:

  • innerHTML
  • outerHTML
  • write

Als u XSS-aanvallen beter wilt begrijpen en voorkomen, heeft Google een XSS-spelwebsite gebouwd om te leren hoe deze aanvallen werken en hoe u ze beter kunt voorkomen. Het Mutillidae 2 project van OWASP biedt ook een leerdoel voor Web security professionals om hun XSS aanval verdediging aan te scherpen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.