Cross-Site Request Forgery (CSRF) er et angreb, hvor en angriber får en bruger til ubevidst at udføre handlinger på et website, hvor brugeren allerede er autentificeret. Angrebet udnytter browserens automatiske afsendelse af cookies og andre credentials.
CSRF opstår, når et website accepterer tilstandsændrende handlinger (fx POST, PUT, DELETE) uden at verificere, at anmodningen faktisk stammer fra den legitime applikation og ikke fra et tredjepartswebsite.
Brugeren er logget ind. Angriberen udnytter tilliden.
CSRF er muligt, når:
Autentifikation sker via cookies
State-changing requests mangler CSRF-token
Serveren ikke validerer request-origin
SameSite cookies er for brede eller forkert anvendt
Typisk flow:
Brugeren er logget ind på bank.dk
Brugeren besøger angriberens website
Sitet sender automatisk en request til bank.dk
Browseren vedhæfter cookies
Handlingen udføres i brugerens navn
Uautoriserede handlinger
Ændring af e-mail, password eller betalingsdata
Oprettelse eller sletning af ressourcer
Direkte økonomisk tab
Tab af brugertillid
Support- og incident-omkostninger
Manglende kontrol over brugerhandlinger
Potentielle audit-fund
Skjulte formularer
Auto-submit forms
Image tags der trigger GET-requests
Cross-site POST via JavaScript
Generér unikke, uforudsigelige tokens per session eller request
Valider token server-side
Kræv token på alle state-changing requests
Brug SameSite=Lax eller Strict hvor muligt
Undgå SameSite=None uden absolut behov
Afvis requests uden korrekt Origin eller Referer
Brug som supplement, ikke som eneste kontrol
Undgå state-changes via GET
Brug POST/PUT/DELETE korrekt
Autentifikation alene
HTTPS
Input-validering
JavaScript-only kontroller
CSRF er et browser- og sessionsproblem, ikke et input-problem.
CSRF-afværgelse bør være indbygget i framework-niveau, ikke håndkodet per endpoint.
Manglende CSRF-beskyttelse skaber systemisk risiko, der vokser med brugerbasen.
Fravær af CSRF-beskyttelse signalerer lav sikkerhedsprioritet.
Udfordring: API’er med cookie-auth
Løsning: Brug CSRF-tokens eller skift til token-baseret auth
Udfordring: Single Page Applications
Løsning: Synkronisér CSRF-token via headers
Udfordring: Legacy endpoints
Løsning: Central middleware for CSRF-validering
CSRF er et forudsigeligt og velkendt angreb.
Hvis en applikation:
stoler blindt på cookies,
ikke validerer requestens oprindelse,
eller tillader state-changes uden token,
så er den sårbar.
CSRF-beskyttelse er ikke valgfrit.
Det er basal webhygiejne.