Cross-site request forgery (CSRF)
CSRF udnytter en indlogget session til en uønsket anmodning. Sessionscookien alene beviser ikke, at personen ønskede handlingen.
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
Relaterede begreber
- APIEn API fastlægger, hvordan software kan bruge funktioner eller data fra anden software.
- HTMLHTML beskriver webindholds struktur og betydning. Det skelner eksempelvis mellem overskrifter, tabeller og indtastningsfelter.
- Cross-site scripting (XSS)Ved XSS bliver eksternt indhold til kode, der kan køres i browseren. Det afgørende er, hvordan applikationen indsætter input på sine sider.
- DataminimeringDataminimering begrænser personoplysninger til det, der er passende, relevant og nødvendigt for et fastlagt formål.
- Politik for dataopbevaringEn politik for dataopbevaring fastlægger formål, start, varighed og afslutning. Sletteopgaver og kopier skal indgå i den tekniske løsning.
- Envelope-krypteringEnvelope-kryptering adskiller datanøglen fra nøglen, der beskytter den. Den krypterede fil og indpakkede datanøgle skal håndteres sammen.
Dit projekt med ASES
Beskriv dit projekt for os. Vi vender tilbage med en første vurdering.