Eragina
Cross-Site Request Forgery (CSRF) erasotzaileak biktima baten arakatzailea engainatu dezake nahi ez diren ekintzak egiteko unean biktima autentifikatuta dagoen beste webgune batean. Arakatzaileek automatikoki barne hartzen dituzten inguruneko kredentzialak eskaeretan cookieak bezalakoak, erasotzaileak egoera aldatzeko eragiketak egin ditzake (adibidez, pasahitzak aldatzea, datuak ezabatzea edo transakzioak abiatzea, erabiltzaileak jakin gabe).
Arrazoia
CSRF-ren oinarrizko arrazoia web-arakatzailearen portaera lehenetsia domeinu bati lotutako cookieak bidaltzea da, domeinu horretara eskaera egiten zaion bakoitzean, eskaeraren jatorria edozein dela ere [S1]. Eskaera aplikazioaren erabiltzaile-interfazetik nahita abiarazi izanaren baliozkotze zehatzik gabe, zerbitzariak ezin du bereizi erabiltzailearen ekintza legitimoa eta faltsututako bat.
Django CSRF Babesteko Mekanismoak
Django-k defentsa-sistema integratua eskaintzen du arrisku horiek arintzeko middleware eta txantiloien integrazioaren bidez [S2].
Middlewarearen aktibazioa
django.middleware.csrf.CsrfViewMiddleware da CSRF babesaren arduraduna eta normalean [S2] gaituta dago. [S2] CSRF erasoak dagoeneko kudeatu direla suposatzen duen edozein ikuspegiren middleware aurretik kokatu behar da.
Txantiloiaren ezarpena
Barneko POST inprimakietarako, garatzaileek {% csrf_token %} etiketa sartu behar dute <form> [S2] elementuaren barruan. Horrek bermatzen du eskaeran token esklusibo esklusibo bat sartzen dela, eta zerbitzariak erabiltzailearen saioaren aurrean baliozkotzen du.
Token Leakage Arriskuak
Ezarpenaren xehetasun kritikoa da {% csrf_token %} ez dela inoiz sartu behar kanpoko URLetara zuzendutako inprimakietan [S2]. Hori eginez gero, CSRF token sekretua hirugarren bati isuriko litzateke, eta baliteke erabiltzailearen saio-segurtasuna arriskuan jarriz [S2].
Arakatzaile-mailako defentsa: gune bereko cookieak
Arakatzaile modernoek SameSite atributua sartu dute Set-Cookie goibururako defentsa-geruza sakona [S1] eskaintzeko.
- Zorrotza: Cookiea lehenen testuinguruan soilik bidaltzen da, hau da, URL barrako gunea cookiearen [S1] domeinuarekin bat dator.
- Lax: cookiea ez da bidaltzen guneen arteko azpieskaeretan (adibidez, irudiak edo markoak), baina erabiltzailea jatorriko gunera nabigatzen denean bidaltzen da, adibidez, [S1] esteka estandar bati jarraituz.
FixVibe probak nola egiten dituen
FixVibe-k CSRF babesa barne hartzen du kontrol aktibo itxi gisa. Domeinua egiaztatu ondoren, active.csrf-protection-k aurkitutako egoera aldatzen duten inprimakiak ikuskatzen ditu, CSRF-token formako sarrerak eta SameSite cookie-seinaleak egiaztatzen ditu, gero eragin txikiko faltsutze-jatorria bidaltzen saiatzen da eta zerbitzariak onartzen duenean soilik ematen du txostena. Cookie-egiaztapenek CSRF defentsa sakona murrizten duten SameSite-ren atributu ahulak ere adierazten dituzte.
