Zum Inhalt springen

Prüfen Sie Ihre Firebase Security Rules auf 26 häufige Fehler

Fügen Sie Ihre Firestore-Regeln, Firebase-Storage-Regeln oder Realtime-Database-Regeln ein. Der Check liest den Text und zeigt, welche Pfade jedem Lesen oder Schreiben erlauben.

Regeln einfügen

Sie können insgesamt bis zu 48.000 Zeichen in die drei Felder einfügen.

Bestätigen Sie, dass Sie ein Mensch sind

So bleiben automatisierte Anfragen vom Dienst fern.

Ihre Regeln werden im Arbeitsspeicher im Netzwerk von Cloudflare verarbeitet und nach der Antwort verworfen. Es wird nichts gespeichert.

Ergebnis

Das ist eine statische Analyse des eingefügten Textes. Sie sieht keine Custom Claims, kein App Check, nicht die Form der Daten und keine Regeln, die nie veröffentlicht wurden; die Note deckt nur ab, was die 26 Prüfungen lesen können.

Was dieser Check nicht sehen kann

Der Check liest nur den eingefügten Text. Er sieht keine Custom Claims, kein App Check, nicht die Form Ihrer Daten und keine Regeln, die nie veröffentlicht wurden. Ein sauberes Ergebnis heißt daher nicht, dass das Projekt sicher ist.

Alle 26 Prüfungen

PrüfungIDDienstSchweregrad
Jeder kann in Firestore schreibenfs-open-writeFirestoreKritisch
Jeder kann aus Firestore lesenfs-open-readFirestoreMittel
Ein rekursiver Wildcard-Match ist offenfs-recursive-wildcard-openFirestoreKritisch
Test-Mode-Regeln mit Ablaufdatumfs-test-mode-expiryFirestoreKritisch
Jeder angemeldete Nutzer kann schreibenfs-auth-only-writeFirestoreHoch
Jeder angemeldete Nutzer kann lesenfs-auth-only-readFirestoreMittel
E-Mail wird ohne email_verified vertrautfs-email-unverifiedFirestoreMittel
Rolle wird aus den Anfragedaten gelesenfs-role-from-requestFirestoreHoch
Eine breite Wildcard verdeckt strengere Regelnfs-wildcard-shadowFirestoreHoch
Nutzer können ihre eigene Rolle schreiben (Heuristik)fs-self-role-writeFirestoreHoch
Schreiben akzeptiert beliebige Felder (Heuristik)fs-write-no-field-guardFirestoreMittel
read ist nicht in get und list getrenntfs-read-not-splitFirestoreInfo
Kein ausdrückliches Default-Denyfs-no-default-denyFirestoreInfo
Die Firestore-Regeln konnten nicht gelesen werdenfs-parse-errorFirestoreInfo
Jeder kann Storage-Dateien lesenst-open-readStorageMittel
Jeder kann in Storage schreibenst-open-writeStorageKritisch
Der Match auf {allPaths=**} ist offenst-recursive-wildcard-openStorageKritisch
Jeder angemeldete Nutzer kann in Storage schreibenst-auth-only-writeStorageHoch
Die Storage-Regeln konnten nicht gelesen werdenst-parse-errorStorageInfo
Die ganze Datenbank ist für jeden lesbardb-root-read-openRealtime DatabaseKritisch
Die ganze Datenbank ist für jeden beschreibbardb-root-write-openRealtime DatabaseKritisch
Ein Knoten ist für jeden lesbardb-open-readRealtime DatabaseMittel
Ein Knoten ist für jeden beschreibbardb-open-writeRealtime DatabaseHoch
Eine Regel am Kind wird vom Elternknoten überstimmtdb-cascade-overrideRealtime DatabaseHoch
Jeder angemeldete Nutzer kann die ganze Datenbank lesen oder schreibendb-auth-only-rootRealtime DatabaseHoch
Die Realtime-Database-Regeln konnten nicht gelesen werdendb-parse-errorRealtime DatabaseInfo

Fragen

Was prüft der Firebase-Regelcheck?

Er liest die Firebase Security Rules, die Sie für Firestore, Cloud Storage und die Realtime Database einfügen. Er sucht nach Regeln, die jedem Lesen oder Schreiben erlauben, nach Regeln, die nur einen angemeldeten Nutzer verlangen, nach Vertrauen in Client-Eingaben und ähnlichen Mustern.

Wird mein Regeltext gespeichert?

Nein. Die Regeln werden im Arbeitsspeicher im Netzwerk von Cloudflare verarbeitet und verworfen, sobald die Antwort gesendet ist. Mit dem Text wird nichts gespeichert oder protokolliert.

Wie viel kann ich einfügen?

Bis zu 48,000 Zeichen insgesamt über die drei Felder. Sind Ihre Regeln länger, fügen Sie den Teil ein, den Sie prüfen lassen möchten.

Warum kann eine öffentliche Leseregel in Ordnung sein?

Manche Daten sind für die Öffentlichkeit gedacht, etwa ein Produktkatalog oder Blogbeiträge. Bei Firestore und Storage zählt der Check einen Lesezugriff ohne Bedingung als mittleres Problem und zieht 10 Punkte ab, weil er nicht wissen kann, ob die Daten privat sind. Sind die Daten absichtlich öffentlich, können Sie diesen Abzug in Kauf nehmen. Nur an der Wurzel der Realtime Database bewertet er einen offenen Lesezugriff höher.

Was sind Test-Mode-Regeln?

Wenn Sie eine Firestore-Datenbank im Testmodus anlegen, schreibt die Konsole eine Regel, die bis zu einem Datum alles erlaubt, mit request.time. Bis zu diesem Datum kann jeder lesen und schreiben; danach wird alles abgelehnt und die App geht kaputt. Ersetzen Sie sie vor dem Start durch echte Bedingungen.

Wie wirken Realtime-Database-Regeln kaskadierend?

In der Realtime Database gilt eine Regel, die Zugriff gewährt, für alles darunter, und ein Kind kann sie nicht zurücknehmen. Eine strengere Regel an einem Kind unter einem offenen Elternknoten greift nie, deshalb meldet der Check sie.

Was bedeutet die Note?

Sie fasst nur zusammen, was die Prüfungen im eingefügten Text lesen können: eine Punktzahl aus 100 minus einem Abzug je fehlgeschlagener Prüfung, bestimmt vom schwersten Problem, das diese Prüfung fand, und jedes kritische Problem ergibt F. Ein mittlerer Punkt kann auch eine Heuristik sein, die Sie bittet, von Hand zu prüfen, weil der Text allein nicht zeigt, ob es ein echtes Problem ist. Ein A beweist nicht, dass das Projekt sicher ist, denn Custom Claims, App Check und die Daten selbst sind außer Reichweite.