Cross-site request forgery (CSRF)
CSRF misbruikt een aangemelde sessie voor een ongewenst verzoek. De sessiecookie alleen bewijst niet dat de gebruiker de handeling bedoelde.
Cross-site request forgery, kortweg CSRF of XSRF, is een aanval waarbij een andere website de browser aanzet tot een ongewenst verzoek aan een doelapplicatie. Stuurt de browser automatisch geldige aanmeldgegevens mee en ontbreekt passende bescherming, dan kan de applicatie het verzoek als opdracht van de aangemelde persoon behandelen.
Een wijziging in het projectportaal
Een fictief projectportaal laat het meldingsadres wijzigen in het veld notificationEmail. Iemand is daar aangemeld en bezoekt daarnaast een andere pagina. Die pagina probeert de wijziging uit te lokken. Of de sessiecookie wordt meegestuurd, hangt onder meer af van de cookieregels van de browser.
Het controleren van een geldige sessiecookie stelt vast bij welke sessie het verzoek hoort. Het bewijst niet dat de persoon deze adreswijziging bedoelde. Alleen POST gebruiken voorkomt de aanval evenmin.
Verzoeken beschermen die de toestand wijzigen
Voor een formulier kan het framework een onvoorspelbaar CSRF-token aanbieden dat aan de sessie is gekoppeld. De server controleert deze extra waarde vóór de wijziging. De bescherming moet daadwerkelijk voor de betrokken verzoeken worden gebruikt.
MDN beschrijft ook controles met Fetch-metadata, de browsergegevens over de context van een verzoek, en andere methoden die bij het verzoektype passen. Het cookieattribuut SameSite vormt een extra beschermingslaag. Dezelfde site en dezelfde origin (protocol, hostnaam en poort) zijn niet gelijk; verschillende subdomeinen kunnen bij dezelfde site horen. Een geldig CSRF-token vervangt bovendien niet de controle of de aangemelde persoon het adres mag wijzigen.
Bronnen
Verwante begrippen
- APIEen API legt vast hoe software functies of gegevens van andere software kan gebruiken.
- HTMLHTML beschrijft structuur en betekenis van webinhoud. Het onderscheidt bijvoorbeeld koppen, tabellen en invoervelden.
- Cross-site scripting (XSS)Bij XSS wordt externe inhoud uitvoerbare code in de browser. Doorslaggevend is hoe een applicatie invoer in haar pagina’s opneemt.
- DataminimalisatieDataminimalisatie beperkt persoonsgegevens tot wat passend, relevant en noodzakelijk is voor een bepaald doel.
- Bewaarbeleid voor gegevensEen bewaarbeleid bepaalt doel, begin, duur en einde van opslag. Verwijderingstaken en kopieën moeten technisch worden meegenomen.
- EnvelopversleutelingEnvelopversleuteling scheidt de gegevenssleutel van de sleutel die deze beschermt. Versleuteld bestand en verpakte gegevenssleutel horen bij elkaar.
Uw project met ASES
Beschrijf ons uw project. We nemen contact met u op met een eerste inschatting.