Přejít na obsah

Zkontrolujte bezpečnostní pravidla Firebase podle 26 častých chyb

Vložte bezpečnostní pravidla Firestore, pravidla Firebase Storage nebo pravidla Realtime Database. Kontrola přečte text a ukáže, které cesty dovolují komukoli číst nebo zapisovat.

Vložte svá pravidla

Do tří polí dohromady můžete vložit nejvýše 48 000 znaků.

Potvrďte, že nejste robot

Tím se od služby drží automatické požadavky.

Vaše pravidla se zpracují v paměti v síti Cloudflare a po odpovědi se zahodí. Nic se neukládá.

Výsledek

Jde o statickou analýzu vloženého textu. Nevidí vlastní claims, App Check, tvar dat ani pravidla, která nikdy nebyla nasazena; známka pokrývá jen to, co umí přečíst 26 kontrol.

Co tato kontrola nevidí

Kontrola čte jen vložený text. Nevidí vlastní claims, App Check, tvar vašich dat ani pravidla, která nikdy nebyla nasazena, takže čistý výsledek neznamená, že je projekt bezpečný.

Všech 26 kontrol

KontrolaIDSlužbaZávažnost
Kdokoli může zapisovat do Firestorefs-open-writeFirestoreKritická
Kdokoli může číst z Firestorefs-open-readFirestoreStřední
Rekurzivní zástupný match je otevřenýfs-recursive-wildcard-openFirestoreKritická
Pravidla testovacího režimu s datem vypršenífs-test-mode-expiryFirestoreKritická
Zapisovat může každý přihlášený uživatelfs-auth-only-writeFirestoreVysoká
Číst může každý přihlášený uživatelfs-auth-only-readFirestoreStřední
E-mailu se věří bez email_verifiedfs-email-unverifiedFirestoreStřední
Role se čte z dat požadavkufs-role-from-requestFirestoreVysoká
Široký zástupný match skrývá přísnější pravidlafs-wildcard-shadowFirestoreVysoká
Uživatelé si mohou zapsat vlastní roli (heuristika)fs-self-role-writeFirestoreVysoká
Zápisy přijímají libovolná pole (heuristika)fs-write-no-field-guardFirestoreStřední
read není rozdělen na get a listfs-read-not-splitFirestoreInfo
Chybí výslovné výchozí zamítnutífs-no-default-denyFirestoreInfo
Pravidla Firestore se nepodařilo přečístfs-parse-errorFirestoreInfo
Kdokoli může číst soubory ve Storagest-open-readStorageStřední
Kdokoli může zapisovat do Storagest-open-writeStorageKritická
Match {allPaths=**} je otevřenýst-recursive-wildcard-openStorageKritická
Zapisovat do Storage může každý přihlášený uživatelst-auth-only-writeStorageVysoká
Pravidla Storage se nepodařilo přečístst-parse-errorStorageInfo
Celou databázi může číst kdokolidb-root-read-openRealtime DatabaseKritická
Do celé databáze může zapisovat kdokolidb-root-write-openRealtime DatabaseKritická
Uzel může číst kdokolidb-open-readRealtime DatabaseStřední
Do uzlu může zapisovat kdokolidb-open-writeRealtime DatabaseVysoká
Pravidlo potomka přebíjí rodičdb-cascade-overrideRealtime DatabaseVysoká
Jakýkoli přihlášený uživatel může číst nebo zapisovat celou databázidb-auth-only-rootRealtime DatabaseVysoká
Pravidla Realtime Database se nepodařilo přečístdb-parse-errorRealtime DatabaseInfo

Otázky

Na co se kontrola pravidel Firebase dívá?

Čte bezpečnostní pravidla Firebase, která vložíte pro Firestore, Cloud Storage a Realtime Database, a hledá pravidla, která dovolují komukoli číst nebo zapisovat, pravidla vyžadující jen přihlášeného uživatele, důvěru ve vstup z klienta a podobné vzory.

Ukládá se text mých pravidel?

Ne. Pravidla se zpracují v paměti v síti Cloudflare a po odeslání odpovědi se zahodí. Spolu s textem se nic neukládá ani nezaznamenává.

Kolik toho mohu vložit?

Celkem až 48,000 znaků ve všech třech polích. Pokud jsou vaše pravidla delší, vložte část, kterou chcete zkontrolovat.

Proč může být veřejné čtení v pořádku?

Některá data jsou veřejná záměrně, třeba katalog produktů nebo články na blogu. U Firestore a Storage kontrola počítá čtení bez podmínky jako střední problém a strhne 10 bodů, protože nemůže vědět, zda jsou data soukromá. Pokud jsou data veřejná záměrně, můžete tuto cenu přijmout. Jen v kořeni Realtime Database hodnotí otevřené čtení jako závažnější.

Co jsou pravidla testovacího režimu?

Když vytvoříte databázi Firestore v testovacím režimu, konzole zapíše pravidlo, které do určitého data povoluje všechno, pomocí request.time. Do toho data může kdokoli číst i zapisovat; potom je všechno zakázáno a aplikace přestane fungovat. Před spuštěním ho nahraďte skutečnými podmínkami.

Jak se v Realtime Database dědí pravidla?

V Realtime Database platí pravidlo, které uděluje přístup, pro vše pod ním a potomek ho nemůže vzít zpět. Přísnější pravidlo na potomkovi pod povolným rodičem se nikdy neuplatní, proto ho kontrola hlásí.

Co znamená známka?

Shrnuje jen to, co kontroly umí přečíst ve vloženém textu: skóre ze 100 mínus trest za každou neúspěšnou kontrolu, určený nejzávažnějším problémem, který tato kontrola našla, a jakýkoli kritický problém je F. Střední položka může být také heuristika, která žádá o ruční ověření, protože samotný text neukáže, zda jde o skutečný problém. Známka A nedokazuje, že je projekt zabezpečený, protože vlastní claims, App Check i samotná data jsou mimo dosah.