CSRF
Cross-Site Request Forgery
Gerelateerde fout
"Deze server is kwetsbaar voor een cross-site request forgery-aanval. Voeg aan elk verzoek een CSRF-token of SameSite-cookiekenmerk toe."
Probleem
Een cross-site request forgery (CSRF) is een aanval die de gebruiker ertoe aanzet om onbedoeld een verzoek naar een webapplicatie te sturen waarvoor deze is geverifieerd. CSRF-aanvallen maken misbruik van het vertrouwen dat een webapplicatie heeft in een geverifieerde gebruiker.
CSRF-aanvallen zijn vaak gericht en maken gebruik van social engineering, zoals:
Phishingmail
Chatlink
Vals alarm
Wanneer een gebruiker zich aanmeldt bij een webapplicatie, vraagt de aanvaller de gebruiker om op een URL te klikken die een ongeautoriseerd verzoek voor een specifieke webapplicatie bevat. De browser van de gebruiker stuurt dit kwaadwillig vervaardigde verzoek vervolgens naar een gerichte webapplicatie, inclusief sessie-informatie zoals sessiecookies of opgeslagen referenties. Als de gebruiker een actieve sessie heeft met een gerichte webapplicatie, verwerkt de applicatie dit nieuwe verzoek als een geautoriseerd, door de gebruiker geïnitieerd verzoek. Daardoor kan de aanvaller misbruik maken van de CSRF-kwetsbaarheid van de webapplicatie.
Het niveau van de aanval hangt af van het niveau van privileges dat het slachtoffer bezit. Een CSRF-aanval steelt niet direct de identiteit van de gebruiker, maar exploiteert de gebruiker om acties uit te voeren zonder de wil van de gebruiker.
Een succesvolle CSRF-aanval dwingt de gebruiker om het statuswijzigingsverzoek uit te voeren, zoals:
Wachtwoord wijzigen
E-mailadres wijzigen
Records wijzigen of verwijderen
Geld overmaken
Aankopen doen
Oplossing
Ga als volgt te werk om een CSRF-aanval te voorkomen:
Gebruik CSRF-tokensin alle verzoeken om statuswijzigingen
Een CSRF-token, ook wel bekend als synchronisatietoken of challenge-token, is een unieke en geheime waarde die aan de clientzijde wordt gegenereerd voor elke gebruikerssessie, waardoor het onmogelijk is om de gebruiker te hacken en te misleiden.
Gebruik het SameSite-kenmerk voor sessiecookies
Stel het SameSite-kenmerk voor cookies in als extra beveiligingslaag samen met het CSRF-token. Met het SameSite-kenmerk kunnen cookies alleen worden verzonden als de cookie en het verzoek afkomstig zijn van hetzelfde domein (en niet van meerdere domeinen).
Opmerking
Oudere browsers ondersteunen mogelijk niet de SameSite-cookie.