Kontrollige oma Firebase’i reegleid 26 tavalise vea suhtes
Kleepige Firestore’i, Firebase Storage’i või Realtime Database’i turvareeglid. Kontroll loeb teksti ja näitab, millised teed lubavad kõigil lugeda või kirjutada.
Tulemus
See on kleebitud teksti staatiline analüüs. See ei näe custom claims’e, App Checki, andmete ülesehitust ega reegleid, mida pole kunagi avaldatud; hinne katab ainult seda, mida 26 kontrolli lugeda saavad.
Mida see kontroll ei näe
Kontroll loeb ainult kleebitud teksti. See ei näe custom claims’e, App Checki, teie andmete ülesehitust ega reegleid, mida pole kunagi avaldatud, seega puhas tulemus ei tähenda, et projekt on turvaline.
Kõik 26 kontrolli
| Kontroll | ID | Teenus | Raskusaste |
|---|---|---|---|
| Igaüks saab Firestore’i kirjutada | fs-open-write | Firestore | Kriitiline |
| Igaüks saab Firestore’ist lugeda | fs-open-read | Firestore | Keskmine |
| Rekursiivne wildcard-match on avatud | fs-recursive-wildcard-open | Firestore | Kriitiline |
| Testrežiimi reeglid aegumiskuupäevaga | fs-test-mode-expiry | Firestore | Kriitiline |
| Iga sisselogitud kasutaja saab kirjutada | fs-auth-only-write | Firestore | Kõrge |
| Iga sisselogitud kasutaja saab lugeda | fs-auth-only-read | Firestore | Keskmine |
| E-posti usaldatakse ilma email_verified kontrollita | fs-email-unverified | Firestore | Keskmine |
| Roll loetakse päringu andmetest | fs-role-from-request | Firestore | Kõrge |
| Lai wildcard peidab rangemad reeglid | fs-wildcard-shadow | Firestore | Kõrge |
| Kasutajad saavad oma rolli kirjutada (heuristika) | fs-self-role-write | Firestore | Kõrge |
| Kirjutamine võtab vastu mis tahes välju (heuristika) | fs-write-no-field-guard | Firestore | Keskmine |
| read ei ole jaotatud get ja list vahel | fs-read-not-split | Firestore | Info |
| Selget vaikimisi keeldu pole | fs-no-default-deny | Firestore | Info |
| Firestore’i reegleid ei õnnestunud lugeda | fs-parse-error | Firestore | Info |
| Igaüks saab Storage’i faile lugeda | st-open-read | Storage | Keskmine |
| Igaüks saab Storage’i kirjutada | st-open-write | Storage | Kriitiline |
| Match {allPaths=**} on avatud | st-recursive-wildcard-open | Storage | Kriitiline |
| Iga sisselogitud kasutaja saab Storage’i kirjutada | st-auth-only-write | Storage | Kõrge |
| Storage’i reegleid ei õnnestunud lugeda | st-parse-error | Storage | Info |
| Kogu andmebaasi saab lugeda igaüks | db-root-read-open | Realtime Database | Kriitiline |
| Kogu andmebaasi saab kirjutada igaüks | db-root-write-open | Realtime Database | Kriitiline |
| Sõlme saab lugeda igaüks | db-open-read | Realtime Database | Keskmine |
| Sõlme saab kirjutada igaüks | db-open-write | Realtime Database | Kõrge |
| Alamreegli tühistab ülemlõik | db-cascade-override | Realtime Database | Kõrge |
| Iga sisselogitud kasutaja saab kogu andmebaasi lugeda või kirjutada | db-auth-only-root | Realtime Database | Kõrge |
| Realtime Database’i reegleid ei õnnestunud lugeda | db-parse-error | Realtime Database | Info |
Küsimused
Mida Firebase’i reeglite kontroll vaatab?
See loeb Firebase’i turvareegleid, mille Firestore’i, Cloud Storage’i ja Realtime Database’i jaoks kleebite, ning otsib reegleid, mis lubavad kõigil lugeda või kirjutada, reegleid, mis nõuavad ainult sisselogitud kasutajat, kliendi sisendi usaldamist ja sarnaseid mustreid.
Kas minu reeglite tekst salvestatakse?
Ei. Reegleid töödeldakse Cloudflare’i võrgus mälus ja visatakse ära, kui vastus on saadetud. Midagi ei salvestata ega logita koos tekstiga.
Kui palju ma saan kleepida?
Kokku kuni 48,000 märki kolmes väljas. Kui teie reeglid on pikemad, kleepige see osa, mida soovite kontrollida.
Miks võib avatud lugemisreegel korras olla?
Mõned andmed on mõeldud avalikuks, näiteks tootekataloog või ajaveebi postitused. Firestore’i ja Storage’i puhul loeb kontroll tingimusteta lugemise keskmiseks probleemiks ja võtab 10 punkti maha, sest see ei saa teada, kas andmed on privaatsed. Kui andmed on tahtlikult avalikud, võite selle hinna vastu võtta. Ainult Realtime Database juurtasandil hindab see avatud lugemist raskemaks.
Mis on testrežiimi reeglid?
Kui loote Firestore’i andmebaasi testrežiimis, kirjutab konsool reegli, mis lubab kõike teatud kuupäevani, kasutades request.time. Selle ajani saab igaüks lugeda ja kirjutada; pärast seda keelatakse kõik ja rakendus lakkab töötamast. Asendage see enne käivitamist päris tingimustega.
Kuidas Realtime Database’i reeglid kaskaadina toimivad?
Realtime Database’is kehtib juurdepääsu andev reegel kõigele selle all ja alamlõik ei saa seda tagasi võtta. Rangem reegel alamlõigul lubava ülemlõigu all ei rakendu kunagi, seepärast kontroll sellest teatab.
Mida hinne tähendab?
See võtab kokku ainult selle, mida kontrollid kleebitud tekstist lugeda saavad: punktid sajast miinus mahaarvamine iga ebaõnnestunud kontrolli eest, mille määrab kõige tõsisem probleem, mille see kontroll leidis, ja iga kriitiline probleem annab F-i. Keskmine punkt võib olla ka heuristika, mis palub käsitsi kontrollida, sest ainuüksi tekstist ei selgu, kas see on päris probleem. A ei tõenda, et projekt on turvaline, sest custom claims, App Check ja andmed ise jäävad kättesaamatuks.