Pārbaudiet Firebase drošības noteikumus pēc 26 biežām kļūdām
Ielīmējiet Firestore drošības noteikumus, Firebase Storage noteikumus vai Realtime Database noteikumus. Pārbaude nolasa tekstu un parāda, kuri ceļi ļauj ikvienam lasīt vai rakstīt.
Rezultāts
Tā ir ielīmētā teksta statiska analīze. Tā neredz pielāgotos claims, App Check, datu formu un noteikumus, kas nekad nav izvietoti; vērtējums aptver tikai to, ko spēj nolasīt 26 pārbaudes.
Ko šī pārbaude neredz
Pārbaude nolasa tikai ielīmēto tekstu. Tā neredz pielāgotos claims, App Check, jūsu datu formu un noteikumus, kas nekad nav izvietoti, tāpēc tīrs rezultāts nenozīmē, ka projekts ir drošs.
Visas 26 pārbaudes
| Pārbaude | ID | Pakalpojums | Svarīgums |
|---|---|---|---|
| Ikviens var rakstīt Firestore | fs-open-write | Firestore | Kritiska |
| Ikviens var lasīt no Firestore | fs-open-read | Firestore | Vidēja |
| Rekursīvs aizstājējzīmes match ir atvērts | fs-recursive-wildcard-open | Firestore | Kritiska |
| Testa režīma noteikumi ar derīguma beigu datumu | fs-test-mode-expiry | Firestore | Kritiska |
| Rakstīt var jebkurš pierakstījies lietotājs | fs-auth-only-write | Firestore | Augsta |
| Lasīt var jebkurš pierakstījies lietotājs | fs-auth-only-read | Firestore | Vidēja |
| E-pastam uzticas bez email_verified | fs-email-unverified | Firestore | Vidēja |
| Loma tiek nolasīta no pieprasījuma datiem | fs-role-from-request | Firestore | Augsta |
| Plašs aizstājējzīmes match slēpj stingrākus noteikumus | fs-wildcard-shadow | Firestore | Augsta |
| Lietotāji var ierakstīt savu lomu (heiristika) | fs-self-role-write | Firestore | Augsta |
| Rakstīšana pieņem jebkurus laukus (heiristika) | fs-write-no-field-guard | Firestore | Vidēja |
| read nav sadalīts uz get un list | fs-read-not-split | Firestore | Info |
| Nav skaidra noklusējuma aizlieguma | fs-no-default-deny | Firestore | Info |
| Firestore noteikumus nevarēja nolasīt | fs-parse-error | Firestore | Info |
| Ikviens var lasīt Storage failus | st-open-read | Storage | Vidēja |
| Ikviens var rakstīt Storage | st-open-write | Storage | Kritiska |
| Match {allPaths=**} ir atvērts | st-recursive-wildcard-open | Storage | Kritiska |
| Storage rakstīt var jebkurš pierakstījies lietotājs | st-auth-only-write | Storage | Augsta |
| Storage noteikumus nevarēja nolasīt | st-parse-error | Storage | Info |
| Visu datubāzi var lasīt ikviens | db-root-read-open | Realtime Database | Kritiska |
| Visā datubāzē var rakstīt ikviens | db-root-write-open | Realtime Database | Kritiska |
| Mezglu var lasīt ikviens | db-open-read | Realtime Database | Vidēja |
| Mezglā var rakstīt ikviens | db-open-write | Realtime Database | Augsta |
| Pakārtotā mezgla noteikumu pārspēj vecāks | db-cascade-override | Realtime Database | Augsta |
| Jebkurš pierakstījies lietotājs var lasīt vai rakstīt visu datubāzi | db-auth-only-root | Realtime Database | Augsta |
| Realtime Database noteikumus nevarēja nolasīt | db-parse-error | Realtime Database | Info |
Jautājumi
Uz ko Firebase noteikumu pārbaude skatās?
Tā nolasa Firebase drošības noteikumus, ko ielīmējat Firestore, Cloud Storage un Realtime Database, un meklē noteikumus, kas ļauj ikvienam lasīt vai rakstīt, noteikumus, kas prasa tikai pierakstītu lietotāju, uzticēšanos klienta ievadītajam un līdzīgus paraugus.
Vai mans noteikumu teksts tiek glabāts?
Nē. Noteikumi tiek apstrādāti atmiņā Cloudflare tīklā un pēc atbildes nosūtīšanas tiek izmesti. Kopā ar tekstu nekas netiek saglabāts vai žurnalēts.
Cik daudz var ielīmēt?
Kopā līdz 48,000 rakstzīmēm trijos laukos. Ja jūsu noteikumi ir garāki, ielīmējiet daļu, ko vēlaties pārbaudīt.
Kāpēc publiska lasīšana var būt pieļaujama?
Daži dati ir paredzēti publiski, piemēram, produktu katalogs vai bloga ieraksti. Firestore un Storage gadījumā pārbaude uzskata lasīšanu bez nosacījuma par vidēju problēmu un atņem 10 punktus, jo tā nevar zināt, vai dati ir privāti. Ja dati ir publiski ar nolūku, šo cenu varat pieņemt. Tikai Realtime Database saknē tā vērtē atvērtu lasīšanu kā smagāku.
Kas ir testa režīma noteikumi?
Kad Firestore datubāzi izveidojat testa režīmā, konsole ieraksta noteikumu, kas līdz datumam atļauj visu, izmantojot request.time. Līdz tam datumam ikviens var lasīt un rakstīt; pēc tam viss tiek liegts un lietotne pārstāj darboties. Pirms palaišanas aizstājiet to ar reāliem nosacījumiem.
Kā Realtime Database noteikumi tiek mantoti?
Realtime Database noteikums, kas piešķir piekļuvi, attiecas uz visu zem tā, un pakārtotais mezgls to nevar atcelt. Stingrāks noteikums pakārtotajā mezglā zem brīvi atļaujoša vecāka nekad netiek piemērots, tāpēc pārbaude to ziņo.
Ko nozīmē vērtējums?
Tas apkopo tikai to, ko pārbaudes spēj nolasīt ielīmētajā tekstā: rezultāts no 100 mīnus sods par katru neizturēto pārbaudi, ko nosaka smagākā problēma, ko šī pārbaude atrada, un jebkura kritiska problēma ir F. Vidēja pozīcija var būt arī heiristika, kas lūdz pārbaudīt ar roku, jo tikai no teksta nevar redzēt, vai tā ir īsta problēma. Vērtējums A nepierāda, ka projekts ir drošs, jo pielāgotie claims, App Check un paši dati ir ārpus sasniedzamības.