FixVibe
Covered by FixVibehigh

Diogelu CSRF: Amddiffyn yn erbyn Newidiadau Gwladol Anawdurdodedig

Mae Ffugio Ceisiadau Traws-Safle (CSRF) yn parhau i fod yn fygythiad sylweddol i gymwysiadau gwe. Mae'r ymchwil hwn yn archwilio sut mae fframweithiau modern fel Django yn gweithredu amddiffyniad a sut mae priodoleddau lefel porwr fel SameSite yn darparu amddiffyniad manwl yn erbyn ceisiadau anawdurdodedig.

CWE-352

Effaith

Mae Ffugio Cais Traws-Safle (CSRF) yn caniatáu i ymosodwr dwyllo porwr dioddefwr i gyflawni gweithredoedd digroeso ar wefan wahanol lle mae'r dioddefwr wedi'i ddilysu ar hyn o bryd. Oherwydd bod porwyr yn cynnwys nodweddion amgylchynol yn awtomatig fel cwcis mewn ceisiadau, gall ymosodwr greu gweithrediadau sy'n newid cyflwr - megis newid cyfrineiriau, dileu data, neu gychwyn trafodion - heb yn wybod i'r defnyddiwr.

Achos Gwraidd

Achos sylfaenol CSRF yw ymddygiad rhagosodedig y porwr gwe o anfon cwcis sy'n gysylltiedig â pharth pryd bynnag y gwneir cais i'r parth hwnnw, waeth beth fo tarddiad y cais [S1]. Heb ddilysiad penodol bod cais wedi'i ysgogi'n fwriadol o ryngwyneb defnyddiwr y rhaglen ei hun, ni all y gweinydd wahaniaethu rhwng gweithred defnyddiwr cyfreithlon ac un ffug.

Mecanweithiau Diogelu Django CSRF

Mae Django yn darparu system amddiffyn adeiledig i liniaru'r risgiau hyn trwy integreiddio nwyddau canol a thempledi [S2].

Ysgogi Offer Canolog

Mae'r django.middleware.csrf.CsrfViewMiddleware yn gyfrifol am amddiffyniad CSRF ac fel arfer mae'n cael ei alluogi yn ddiofyn [S2]. Rhaid ei osod cyn unrhyw offer canol golwg sy'n tybio bod ymosodiadau CSRF eisoes wedi'u trin [S2].

Gweithredu Templed

Ar gyfer unrhyw ffurflenni POST mewnol, rhaid i ddatblygwyr gynnwys y tag {% csrf_token %} y tu mewn i'r elfen <form> [S2]. Mae hyn yn sicrhau bod tocyn cyfrinachol unigryw wedi'i gynnwys yn y cais, y mae'r gweinydd wedyn yn ei ddilysu yn erbyn sesiwn y defnyddiwr.

Risgiau Gollyngiadau Tocyn

Un o fanylion gweithredu hanfodol yw na ddylid byth gynnwys y {% csrf_token %} mewn ffurflenni sy'n targedu URLs allanol [S2]. Byddai gwneud hynny yn gollwng y tocyn CSRF cyfrinachol i drydydd parti, a allai beryglu diogelwch sesiwn y defnyddiwr [S2].

Amddiffyniad Lefel Porwr: Cwcis SameSite

Mae porwyr modern wedi cyflwyno'r priodoledd SameSite ar gyfer y pennawd Set-Cookie i ddarparu haen o amddiffyniad manwl [S1].

  • Strict: Anfonir y cwci yng nghyd-destun parti cyntaf yn unig, sy'n golygu bod y wefan yn y bar URL yn cyd-fynd â pharth y cwci [S1].
  • Locs: Nid yw'r cwci yn cael ei anfon ar is-geisiadau traws-safle (fel delweddau neu fframiau) ond fe'i hanfonir pan fydd defnyddiwr yn llywio i'r safle gwreiddiol, megis trwy ddilyn dolen safonol [S1].

Sut mae FixVibe yn ei brofi

Mae FixVibe bellach yn cynnwys amddiffyniad CSRF fel gwiriad gweithredol â gatiau. Ar ôl dilysu parth, mae active.csrf-protection yn archwilio ffurflenni sy'n newid cyflwr a ddarganfuwyd, yn gwirio mewnbynnau siâp tocyn CSRF a signalau cwci SameSite, yna'n ceisio cyflwyniad tarddiad ffug effaith isel a dim ond yn adrodd pan fydd y gweinydd yn ei dderbyn. Mae gwiriadau cwci hefyd yn tynnu sylw at briodoleddau SameSite gwan sy'n lleihau amddiffyniad manwl CSRF.