Cross-site request forgery (CSRF)
CSRF utnyttjar en inloggad session för en oönskad förfrågan. Sessionscookien ensam bevisar inte att personen avsåg handlingen.
Cross-site request forgery, förkortat CSRF eller XSRF, är en attack där en annan webbplats får webbläsaren att skicka en oönskad förfrågan till en målapplikation. Om webbläsaren automatiskt skickar med giltiga inloggningsuppgifter och lämpligt skydd saknas kan applikationen behandla förfrågan som ett uppdrag från den inloggade personen.
En ändring i projektportalen
En fiktiv projektportal låter användaren ändra adressen för aviseringar i fältet notificationEmail. En person är inloggad där och besöker också en annan sida. Den sidan försöker utlösa ändringen. Om sessionscookien skickas med beror bland annat på webbläsarens cookieregler.
Kontroll av en giltig sessionscookie fastställer vilken session förfrågan tillhör. Den bevisar inte att personen avsåg denna adressändring. Att enbart använda POST hindrar inte heller attacken.
Skydda förfrågningar som ändrar tillstånd
För ett formulär kan ramverket ge en oförutsägbar CSRF-token kopplad till sessionen. Servern kontrollerar detta extra värde före ändringen. Skyddet måste faktiskt användas för de berörda förfrågningarna.
MDN beskriver även kontroller med Fetch-metadata, alltså webbläsaruppgifter om en förfrågans sammanhang, och andra metoder som passar förfrågningstypen. Cookieattributet SameSite är ett extra skyddslager. Samma site och samma origin (protokoll, värdnamn och port) är inte likvärdiga; olika underdomäner kan tillhöra samma site. En giltig CSRF-token ersätter inte heller kontrollen av om den inloggade personen får ändra adressen.
Källor
Relaterade begrepp
- APIEtt API anger hur programvara kan använda funktioner eller data som annan programvara erbjuder.
- HTMLHTML beskriver webbinnehållets struktur och betydelse. Det skiljer exempelvis mellan rubriker, tabeller och inmatningsfält.
- Cross-site scripting (XSS)Vid XSS blir externt innehåll körbar kod i webbläsaren. Avgörande är hur applikationen för in indata på sina sidor.
- DataminimeringDataminimering begränsar personuppgifter till vad som är lämpligt, relevant och nödvändigt för ett bestämt ändamål.
- Policy för datalagringEn policy för datalagring anger syfte, start, varaktighet och slut för lagringen. Raderingsjobb och kopior måste ingå i den tekniska lösningen.
- Envelope-krypteringEnvelope-kryptering skiljer datanyckeln från den nyckel som skyddar den. Den krypterade filen och inpackade datanyckeln behöver hanteras tillsammans.
Ditt projekt med ASES
Beskriv ditt projekt för oss. Vi hör av oss med en första bedömning.