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.
