Rregullat e sigurisë Firebase sigurojnë një mekanizëm të hollësishëm, të zbatuar nga serveri për të mbrojtur të dhënat në Firestore, bazën e të dhënave në kohë reale dhe ruajtjen në renë kompjuterike [S1]. Për shkak se aplikacionet Firebase shpesh ndërveprojnë me këto shërbime cloud direkt nga ana e klientit, këto rregulla përfaqësojnë pengesën e vetme që parandalon aksesin e paautorizuar në të dhënat e prapavijës [S1].
Ndikimi i rregullave lejuese
Rregullat e konfiguruara gabimisht mund të çojnë në ekspozim të konsiderueshëm të të dhënave [S2]. Nëse rregullat janë vendosur të jenë tepër lejuese - për shembull, duke përdorur cilësimet e paracaktuara të "modalitetit të testimit" që lejojnë aksesin global - çdo përdorues me njohuri për ID-në e projektit mund të lexojë, modifikojë ose fshijë të gjithë përmbajtjen e bazës së të dhënave [S2]. Kjo anashkalon të gjitha masat e sigurisë nga ana e klientit dhe mund të rezultojë në humbjen e informacionit të ndjeshëm të përdoruesit ose në ndërprerje totale të shërbimit [S2].
Shkaku kryesor: Logjika e pamjaftueshme e autorizimit
Shkaku kryesor i këtyre dobësive është zakonisht dështimi për të zbatuar kushte specifike që kufizojnë aksesin bazuar në identitetin e përdoruesit ose atributet e burimit [S3]. Zhvilluesit shpesh i lënë aktive konfigurimet e paracaktuara në mjediset e prodhimit të cilat nuk e vërtetojnë objektin request.auth [S3]. Pa vlerësuar request.auth, sistemi nuk mund të bëjë dallimin midis një përdoruesi të ligjshëm të vërtetuar dhe një kërkuesi anonim [S3].
Riparimi teknik
Sigurimi i një mjedisi Firebase kërkon kalimin nga qasja e hapur në një model kryesor me më së paku privilegje.
- Zbatoni vërtetimin: Sigurohuni që të gjitha shtigjet e ndjeshme kërkojnë një sesion të vlefshëm përdoruesi duke kontrolluar nëse objekti
request.authnuk është i pavlefshëm [S3]. - Zbatoni aksesin e bazuar në identitet: Konfiguroni rregullat që krahasojnë UID-në e përdoruesit (
request.auth.uid) me një fushë brenda dokumentit ose ID-në e dokumentit vetë për t'u siguruar që përdoruesit mund të kenë akses vetëm në të dhënat e tyre [S3]. - Përcaktimi granular i lejes: Shmangni karakteret globale për koleksionet. Në vend të kësaj, përcaktoni rregulla specifike për çdo koleksion dhe nën-koleksion për të minimizuar sipërfaqen e mundshme të sulmit [S2].
- Verifikimi nëpërmjet Suite Emulator: Përdorni Firebase Emulator Suite për të testuar rregullat e sigurisë në nivel lokal. Kjo lejon verifikimin e logjikës së kontrollit të aksesit ndaj personaliteteve të ndryshme të përdoruesve përpara se të vendoset në një mjedis të drejtpërdrejtë [S2].
Si e teston FixVibe për të
FixVibe tani e përfshin këtë si një skanim BaaS vetëm për lexim. baas.firebase-rules nxjerr konfigurimin Firebase nga paketat JavaScript me origjinë të njëjtë, duke përfshirë format moderne të paketave initializeApp(...), më pas kontrollon bazën e të dhënave në kohë reale, Firestore dhe ZXCOKVENFIX të SXCV1FIX të së njëjtës kërkesa vetëm për lexim. Për Firestore, së pari provon listën e koleksionit rrënjësor; kur listimi është i bllokuar, ai gjithashtu heton emrat e zakonshëm të ndjeshëm të koleksioneve si users, accounts, customers, orders, users, messages, admin dhe settings. Ai raporton vetëm lexime ose listime anonime të suksesshme dhe nuk shkruan, fshin ose ruan përmbajtjen e dokumenteve të klientit.
