Prejsť na obsah

Skontrolujte bezpečnostné pravidlá Firebase podľa 26 častých chýb

Vložte bezpečnostné pravidlá Firestore, pravidlá Firebase Storage alebo pravidlá Realtime Database. Kontrola prečíta text a ukáže, ktoré cesty umožňujú komukoľvek čítať alebo zapisovať.

Vložte svoje pravidlá

Do troch polí spolu môžete vložiť najviac 48 000 znakov.

Potvrďte, že nie ste robot

Tým sa od služby držia automatické požiadavky.

Vaše pravidlá sa spracujú v pamäti v sieti Cloudflare a po odpovedi sa zahodia. Nič sa neukladá.

Výsledok

Ide o statickú analýzu vloženého textu. Nevidí vlastné claims, App Check, tvar dát ani pravidlá, ktoré nikdy neboli nasadené; známka pokrýva len to, čo vie prečítať 26 kontrol.

Čo táto kontrola nevidí

Kontrola číta iba vložený text. Nevidí vlastné claims, App Check, tvar vašich dát ani pravidlá, ktoré nikdy neboli nasadené, takže čistý výsledok neznamená, že je projekt bezpečný.

Všetkých 26 kontrol

KontrolaIDSlužbaZávažnosť
Ktokoľvek môže zapisovať do Firestorefs-open-writeFirestoreKritická
Ktokoľvek môže čítať z Firestorefs-open-readFirestoreStredná
Rekurzívny zástupný match je otvorenýfs-recursive-wildcard-openFirestoreKritická
Pravidlá testovacieho režimu s dátumom vypršaniafs-test-mode-expiryFirestoreKritická
Zapisovať môže každý prihlásený používateľfs-auth-only-writeFirestoreVysoká
Čítať môže každý prihlásený používateľfs-auth-only-readFirestoreStredná
E-mailu sa verí bez email_verifiedfs-email-unverifiedFirestoreStredná
Rola sa číta z dát požiadavkyfs-role-from-requestFirestoreVysoká
Široký zástupný match skrýva prísnejšie pravidláfs-wildcard-shadowFirestoreVysoká
Používatelia si môžu zapísať vlastnú rolu (heuristika)fs-self-role-writeFirestoreVysoká
Zápisy prijímajú ľubovoľné polia (heuristika)fs-write-no-field-guardFirestoreStredná
read nie je rozdelený na get a listfs-read-not-splitFirestoreInfo
Chýba výslovné predvolené zamietnutiefs-no-default-denyFirestoreInfo
Pravidlá Firestore sa nepodarilo prečítaťfs-parse-errorFirestoreInfo
Ktokoľvek môže čítať súbory v Storagest-open-readStorageStredná
Ktokoľvek môže zapisovať do Storagest-open-writeStorageKritická
Match {allPaths=**} je otvorenýst-recursive-wildcard-openStorageKritická
Zapisovať do Storage môže každý prihlásený používateľst-auth-only-writeStorageVysoká
Pravidlá Storage sa nepodarilo prečítaťst-parse-errorStorageInfo
Celú databázu môže čítať ktokoľvekdb-root-read-openRealtime DatabaseKritická
Do celej databázy môže zapisovať ktokoľvekdb-root-write-openRealtime DatabaseKritická
Uzol môže čítať ktokoľvekdb-open-readRealtime DatabaseStredná
Do uzla môže zapisovať ktokoľvekdb-open-writeRealtime DatabaseVysoká
Pravidlo potomka prebíja rodičdb-cascade-overrideRealtime DatabaseVysoká
Ktorýkoľvek prihlásený používateľ môže čítať alebo zapisovať celú databázudb-auth-only-rootRealtime DatabaseVysoká
Pravidlá Realtime Database sa nepodarilo prečítaťdb-parse-errorRealtime DatabaseInfo

Otázky

Na čo sa kontrola pravidiel Firebase pozerá?

Číta bezpečnostné pravidlá Firebase, ktoré vložíte pre Firestore, Cloud Storage a Realtime Database, a hľadá pravidlá, ktoré umožňujú komukoľvek čítať alebo zapisovať, pravidlá vyžadujúce iba prihláseného používateľa, dôveru vo vstup z klienta a podobné vzory.

Ukladá sa text mojich pravidiel?

Nie. Pravidlá sa spracujú v pamäti v sieti Cloudflare a po odoslaní odpovede sa zahodia. Spolu s textom sa nič neukladá ani nezaznamenáva.

Koľko toho môžem vložiť?

Spolu až 48,000 znakov vo všetkých troch poliach. Ak sú vaše pravidlá dlhšie, vložte časť, ktorú chcete skontrolovať.

Prečo môže byť verejné čítanie v poriadku?

Niektoré dáta sú verejné zámerne, napríklad katalóg produktov alebo články na blogu. Pri Firestore a Storage kontrola počíta čítanie bez podmienky ako stredný problém a strhne 10 bodov, pretože nemôže vedieť, či sú dáta súkromné. Ak sú dáta verejné zámerne, túto cenu môžete prijať. Iba v koreni Realtime Database hodnotí otvorené čítanie ako závažnejšie.

Čo sú pravidlá testovacieho režimu?

Keď vytvoríte databázu Firestore v testovacom režime, konzola zapíše pravidlo, ktoré do určitého dátumu povoľuje všetko, pomocou request.time. Do toho dátumu môže ktokoľvek čítať aj zapisovať; potom je všetko zakázané a aplikácia prestane fungovať. Pred spustením ho nahraďte skutočnými podmienkami.

Ako sa v Realtime Database dedia pravidlá?

V Realtime Database platí pravidlo, ktoré udeľuje prístup, pre všetko pod ním a potomok ho nemôže vziať späť. Prísnejšie pravidlo na potomkovi pod povoľným rodičom sa nikdy neuplatní, preto ho kontrola hlási.

Čo znamená známka?

Zhŕňa len to, čo kontroly vedia prečítať vo vloženom texte: skóre zo 100 mínus trest za každú neúspešnú kontrolu, určený najzávažnejším problémom, ktorý táto kontrola našla, a akýkoľvek kritický problém je F. Stredná položka môže byť aj heuristika, ktorá žiada o ručné overenie, pretože samotný text neukáže, či ide o skutočný problém. Známka A nedokazuje, že je projekt zabezpečený, pretože vlastné claims, App Check aj samotné dáta sú mimo dosahu.