Gå til indholdet

Cross-site request forgery (CSRF)

CSRF udnytter en indlogget session til en uønsket anmodning. Sessionscookien alene beviser ikke, at personen ønskede handlingen.

Også kendt somCSRFXSRF
IT-sikkerhed

Cross-site request forgery, forkortet CSRF eller XSRF, er et angreb, hvor et andet websted får browseren til at sende en uønsket anmodning til en målapplikation. Hvis browseren automatisk medsender gyldige loginoplysninger, og passende beskyttelse mangler, kan applikationen behandle anmodningen som en instruktion fra den indloggede person.

En ændring i projektportalen

En fiktiv projektportal gør det muligt at ændre adressen til meddelelser i feltet notificationEmail. En person er logget ind dér og besøger samtidig en anden side. Denne side forsøger at udløse ændringen. Om sessionscookien medsendes, afhænger blandt andet af browserens cookieregler.

Kontrol af en gyldig sessionscookie fastslår, hvilken session anmodningen tilhører. Den beviser ikke, at personen ønskede denne adresseændring. Brug af POST alene forhindrer heller ikke angrebet.

Beskyt anmodninger, der ændrer tilstanden

Til en formular kan frameworket levere et uforudsigeligt CSRF-token, som er knyttet til sessionen. Serveren kontrollerer denne ekstra værdi før ændringen. Beskyttelsen skal faktisk bruges til de relevante anmodninger.

MDN beskriver også kontrol med Fetch-metadata, altså browseroplysninger om en anmodnings kontekst, og andre metoder, der passer til anmodningstypen. Cookieattributten SameSite er et ekstra beskyttelseslag. Samme site og samme origin (protokol, værtsnavn og port) betyder ikke det samme; forskellige subdomæner kan tilhøre samme site. Et gyldigt CSRF-token erstatter heller ikke kontrollen af, om den indloggede person må ændre adressen.

Kilder