FixVibe
Covered by FixVibehigh

Protezzjoni CSRF: Tiddefendi Kontra Tibdil Statali Mhux Awtorizzat

Cross-Site Request Forgery (CSRF) jibqa' theddida sinifikanti għall-applikazzjonijiet tal-web. Din ir-riċerka tesplora kif oqfsa moderni bħal Django jimplimentaw protezzjoni u kif attributi fil-livell tal-browser bħal SameSite jipprovdu difiża fil-fond kontra talbiet mhux awtorizzati.

CWE-352

Impatt

Cross-Site Request Forgery (CSRF) jippermetti lil attakkant iqarraq bil-browser tal-vittma biex iwettaq azzjonijiet mhux mixtieqa fuq websajt differenti fejn il-vittma hija attwalment awtentikata. Minħabba li l-browsers awtomatikament jinkludu kredenzjali ambjentali bħall-cookies fit-talbiet, attakkant jista 'jsawwar operazzjonijiet li jbiddlu l-istat—bħal tibdil tal-passwords, it-tħassir tad-dejta, jew il-bidu ta' tranżazzjonijiet—mingħajr l-għarfien tal-utent.

Kawża Għerq

Il-kawża fundamentali tas-CSRF hija l-imġieba default tal-web browser li jibgħat cookies assoċjati ma' dominju kull meta ssir talba lil dak id-dominju, irrispettivament mill-oriġini tat-talba [S1]. Mingħajr validazzjoni speċifika li talba ġiet attivata intenzjonalment mill-interface tal-utent tal-applikazzjoni stess, is-server ma jistax jiddistingwi bejn azzjoni leġittima tal-utent u waħda falsifikata.

Mekkaniżmi ta' Protezzjoni Django CSRF

Django jipprovdi sistema ta' difiża inkorporata biex itaffu dawn ir-riskji permezz ta' middleware u integrazzjoni tal-mudelli [S2].

Attivazzjoni tal-Middleware

Iż-django.middleware.csrf.CsrfViewMiddleware huwa responsabbli għall-protezzjoni CSRF u huwa tipikament attivat b'mod awtomatiku [S2]. Għandu jitqiegħed qabel kwalunkwe middleware tal-vista li jassumi li l-attakki CSRF diġà ġew immaniġġjati [S2].

Implimentazzjoni tal-Mudelli

Għal kwalunkwe formoli POST interni, l-iżviluppaturi għandhom jinkludu t-tikketta {% csrf_token %} ġewwa l-element <form> [S2]. Dan jiżgura li token uniku u sigriet ikun inkluż fit-talba, li s-server imbagħad jivvalida kontra s-sessjoni tal-utent.

Riskji ta' Tnixxija ta' Tokens

Dettall kritiku ta' implimentazzjoni huwa li {% csrf_token %} m'għandu qatt jiġi inkluż f'formoli li jimmiraw URLs esterni [S2]. Jekk tagħmel dan, it-token CSRF sigriet joħroġ lil parti terza, u potenzjalment jikkomprometti s-sigurtà tas-sessjoni tal-utent [S2].

Difiża fil-Livell tal-Browser: Cookies tal-Istess Sit

Brawżers moderni introduċew l-attribut SameSite għall-header Set-Cookie biex jipprovdu saff ta 'difiża fil-fond [S1].

  • Strict: Il-cookie tintbagħat biss f'kuntest tal-ewwel parti, jiġifieri s-sit fil-bar tal-URL jaqbel mad-dominju tal-cookie [S1].
  • Lax: Il-cookie ma tintbagħatx fuq sub-talbiet bejn is-siti (bħal immaġini jew frames) iżda tintbagħat meta utent jinnaviga lejn is-sit tal-oriġini, bħal billi jsegwi link standard [S1].

Kif FixVibe jittestja għaliha

FixVibe issa jinkludi protezzjoni CSRF bħala kontroll attiv gated. Wara l-verifika tad-dominju, active.csrf-protection jispezzjona formoli skoperti li jinbidlu l-istat, kontrolli għal inputs f'forma ta 'token CSRF u sinjali tal-cookie SameSite, imbagħad jipprova sottomissjoni ta' oriġini falsifikata b'impatt baxx u jirrapporta biss meta s-server jaċċettaha. Il-kontrolli tal-cookies jindikaw ukoll attributi dgħajfin ta' SameSite li jnaqqsu d-difiża CSRF fil-fond.