CSRF (Cross-Site Request Forgery) er et angreb, hvor et ondsindet site får en autentificeret brugers browser til at sende en uønsket state-changing request til et andet site — for eksempel at overføre penge, ændre en e-mailadresse eller oprette en admin-konto. Det virker, fordi browsere automatisk vedhæfter session cookies til forespørgsler, så målsitet ikke kan afgøre, om requestet stammer fra en reel brugerhandling.
Hvorfor det er vigtigt
CSRF kan udføre enhver handling, som det loggede offer har tilladelse til, lydløst og uden deres viden. I modsætning til XSS ser angriberen aldrig svaret — de udløser bare en side effect. Typiske mål er admin-dashboards, bankflows, kontoindstillinger og formular til ændring af adgangskode. En enkelt manglende token på et sensitivt POST-endpoint kan være nok til at muliggøre masseovertagelse af konti.
Sådan beskytter du dig
- Brug anti-CSRF-tokens — unikke, uforudsigelige, per-session (eller per-request) værdier, der indlejres i formularer og valideres server-side ved enhver state-changing request.
- Sæt session cookies med
SameSite=Lax(standard i moderne browsere) ellerSameSite=Strictfor at blokere cross-origin cookie-vedhæftning til henholdsvis top-level navigationer og sub-requests. - Validér
Origin-headeren (og fald tilbage tilReferer) på alle POST/PUT/DELETE-endpoints som et sekundært tjek. - Kræv genautentificering eller en engangskode for handlinger med høj påvirkning som ændring af adgangskode og e-mail.
- Konfigurér CORS omhyggeligt — alt for åben CORS kan underminere SameSite-beskyttelse.
- Håndhæv HTTPS og HSTS, så cookies ikke kan nedgraderes over klartext, og anvend en stærk CSP for at begrænse, hvad angriberstyret markup kan nå.