Mae Rheolau Diogelwch Firebase yn darparu mecanwaith gronynnog, wedi'i orfodi gan weinydd i ddiogelu data yn Firestore, Cronfa Ddata Realtime, a Cloud Storage [S1]. Oherwydd bod cymwysiadau Firebase yn aml yn rhyngweithio â'r gwasanaethau cwmwl hyn yn uniongyrchol o ochr y cleient, mae'r rheolau hyn yn cynrychioli'r unig rwystr sy'n atal mynediad anawdurdodedig i'r data backend [S1].
Effaith Rheolau Caniataol
Gall rheolau wedi'u camgyflunio arwain at ddatguddiad data sylweddol [S2]. Os gosodir rheolau i fod yn rhy ganiataol - er enghraifft, gan ddefnyddio gosodiadau 'modd prawf' rhagosodedig sy'n caniatáu mynediad byd-eang - gall unrhyw ddefnyddiwr sydd â gwybodaeth am ID y prosiect ddarllen, addasu, neu ddileu cynnwys y gronfa ddata gyfan [S2]. Mae hyn yn osgoi'r holl fesurau diogelwch ochr y cleient a gall arwain at golli gwybodaeth defnyddiwr sensitif neu amhariad llwyr ar y gwasanaeth [S2].
Achos Gwraidd: Rhesymeg Awdurdodi Annigonol
Yn nodweddiadol, gwraidd y gwendidau hyn yw'r methiant i weithredu amodau penodol sy'n cyfyngu mynediad yn seiliedig ar hunaniaeth defnyddiwr neu briodoleddau adnoddau [S3]. Mae datblygwyr yn aml yn gadael cyfluniadau rhagosodedig yn weithredol mewn amgylcheddau cynhyrchu nad ydynt yn dilysu'r gwrthrych request.auth [S3]. Heb werthuso request.auth, ni all y system wahaniaethu rhwng defnyddiwr dilys dilys a chais dienw [S3].
Adfer Technegol
Er mwyn sicrhau amgylchedd Firebase mae angen symud o fynediad agored i fodel prif o'r fraint leiaf.
- Gorfodi Dilysu: Sicrhewch fod angen sesiwn defnyddiwr dilys ar bob llwybr sensitif trwy wirio a yw'r gwrthrych
request.authyn null [S3]. - Gweithredu Mynediad Seiliedig ar Hunaniaeth: Ffurfweddu rheolau sy'n cymharu UID y defnyddiwr (
request.auth.uid) â maes o fewn y ddogfen neu ID y ddogfen ei hun i sicrhau mai dim ond eu data eu hunain y gall defnyddwyr gael mynediad iddynt [S3]. - Cwmpas Caniatâd Gronynnog: Osgowch gardiau chwilio byd-eang ar gyfer casgliadau. Yn lle hynny, diffiniwch reolau penodol ar gyfer pob casgliad ac is-gasglu i leihau'r arwyneb ymosodiad posibl [S2].
- Dilysu trwy Gyfres Emulator: Defnyddiwch Gyfres Emulator Firebase i brofi rheolau diogelwch yn lleol. Mae hyn yn caniatáu ar gyfer gwirio rhesymeg rheoli mynediad yn erbyn gwahanol bersonau defnyddwyr cyn eu defnyddio i amgylchedd byw [S2].
Sut mae FixVibe yn ei brofi
Mae FixVibe bellach yn cynnwys hwn fel sgan darllen yn unig BaaS. Mae baas.firebase-rules yn echdynnu ffurfweddiad Firebase o fwndeli JavaScript o'r un tarddiad, gan gynnwys siapiau bwndeli modern initializeApp(...), yna'n gwirio Cronfa Ddata Realtime, Firestore, a ZXCVFIXVIBETOKENStor12ZXCV gyda read-the requests. Ar gyfer Firestore, mae'n ceisio rhestru casglu gwreiddiau yn gyntaf; pan fydd rhestru wedi'i rwystro, mae hefyd yn archwilio enwau casgliadau sensitif cyffredin fel users, accounts, customers, orders, ZXCVFIXVIBETOKEN6 messages, admin, a settings. Mae'n adrodd dim ond darlleniadau neu restrau dienw llwyddiannus ac nid yw'n ysgrifennu, dileu, neu storio cynnwys dogfen cwsmer.
