Impact
Falsifikovanje zahteva na više lokacija (CSRF) omogućava napadaču da prevari pretraživač žrtve da izvrši neželjene radnje na drugoj veb lokaciji na kojoj je žrtva trenutno autentifikovana. Budući da pretraživači automatski uključuju ambijentalne vjerodajnice poput kolačića u zahtjeve, napadač može krivotvoriti operacije promjene stanja—kao što je promjena lozinki, brisanje podataka ili pokretanje transakcija—bez znanja korisnika.
Osnovni uzrok
Osnovni uzrok CSRF-a je podrazumevano ponašanje web pretraživača slanja kolačića povezanih sa domenom kad god se zahtev uputi tom domenu, bez obzira na poreklo zahteva [S1]. Bez posebne provjere da je zahtjev namjerno pokrenut iz korisničkog sučelja aplikacije, server ne može razlikovati legitimnu korisničku radnju od krivotvorene.
Django CSRF zaštitni mehanizmi
Django obezbeđuje ugrađeni sistem odbrane za ublažavanje ovih rizika kroz integraciju međuvera i šablona [S2].
Aktivacija srednjeg softvera
django.middleware.csrf.CsrfViewMiddleware je odgovoran za CSRF zaštitu i obično je omogućen prema zadanim postavkama [S2]. Mora biti pozicioniran prije bilo kakvog međuprograma pogleda koji pretpostavlja da su CSRF napadi već obrađeni [S2].
Implementacija predloška
Za sve interne POST obrasce, programeri moraju uključiti oznaku {% csrf_token %} unutar <form> elementa [S2]. Ovo osigurava da je jedinstveni, tajni token uključen u zahtjev, koji server zatim potvrđuje u odnosu na sesiju korisnika.
Rizici od curenja tokena
Kritični detalj implementacije je da {% csrf_token %} nikada ne treba biti uključen u obrasce koji ciljaju vanjske URL-ove [S2]. To bi procurilo tajni CSRF token trećoj strani, potencijalno kompromitujući sigurnost sesije korisnika [S2].
Odbrana na nivou pretraživača: SameSite kolačići
Moderni pretraživači su uveli atribut SameSite za zaglavlje Set-Cookie kako bi pružili sloj [S1].
- Strogo: Kolačić se šalje samo u kontekstu prve strane, što znači da se stranica u URL traci podudara s domenom kolačića [S1].
- Lax: Kolačić se ne šalje na podzahtjeve na više lokacija (kao što su slike ili okviri), već se šalje kada korisnik dođe do početne stranice, kao što je praćenje standardne veze [S1].
Kako FixVibe testira za to
FixVibe sada uključuje CSRF zaštitu kao aktivnu provjeru s ograničenjem. Nakon verifikacije domena, active.csrf-protection pregleda otkrivene obrasce koji mijenjaju stanje, provjerava unose u obliku CSRF tokena i signale kolačića SameSite, zatim pokušava podnošenje lažnog porijekla sa malim utjecajem i izvještava samo kada ga server prihvati. Provjere kolačića također označavaju slabe SameSite atribute koji smanjuju dubinu CSRF odbrane.
