Vai al contenuto

Controlli le sue regole di sicurezza Firebase su 26 errori comuni

Incolli le regole di Firestore, di Firebase Storage o di Realtime Database. Il controllo legge il testo e mostra quali percorsi permettono a chiunque di leggere o scrivere.

Incolli le sue regole

Può incollare fino a 48.000 caratteri in totale nei tre campi.

Confermi di essere una persona

Così le richieste automatiche restano fuori dal servizio.

Le sue regole vengono elaborate in memoria sulla rete di Cloudflare e scartate dopo la risposta. Non viene salvato nulla.

Risultato

Questa è un’analisi statica del testo incollato. Non vede custom claims, App Check, la forma dei dati né regole che non sono mai state pubblicate; il voto copre solo ciò che i 26 controlli riescono a leggere.

Cosa questo controllo non può vedere

Il controllo legge solo il testo incollato. Non vede custom claims, App Check, la forma dei suoi dati né regole che non sono mai state pubblicate, quindi un risultato pulito non significa che il progetto sia sicuro.

Tutti i 26 controlli

ControlloIDServizioGravità
Chiunque può scrivere su Firestorefs-open-writeFirestoreCritica
Chiunque può leggere da Firestorefs-open-readFirestoreMedia
Un match con wildcard ricorsivo è apertofs-recursive-wildcard-openFirestoreCritica
Regole in modalità di test con scadenzafs-test-mode-expiryFirestoreCritica
Qualsiasi utente autenticato può scriverefs-auth-only-writeFirestoreAlta
Qualsiasi utente autenticato può leggerefs-auth-only-readFirestoreMedia
Email considerata affidabile senza email_verifiedfs-email-unverifiedFirestoreMedia
Ruolo letto dai dati della richiestafs-role-from-requestFirestoreAlta
Un wildcard ampio nasconde regole più severefs-wildcard-shadowFirestoreAlta
Gli utenti possono scrivere il proprio ruolo (euristica)fs-self-role-writeFirestoreAlta
La scrittura accetta qualsiasi campo (euristica)fs-write-no-field-guardFirestoreMedia
read non è diviso in get e listfs-read-not-splitFirestoreInfo
Nessun rifiuto esplicito per impostazione predefinitafs-no-default-denyFirestoreInfo
Le regole di Firestore non sono state lettefs-parse-errorFirestoreInfo
Chiunque può leggere i file di Storagest-open-readStorageMedia
Chiunque può scrivere su Storagest-open-writeStorageCritica
Il match {allPaths=**} è apertost-recursive-wildcard-openStorageCritica
Qualsiasi utente autenticato può scrivere su Storagest-auth-only-writeStorageAlta
Le regole di Storage non sono state lettest-parse-errorStorageInfo
L’intero database è leggibile da chiunquedb-root-read-openRealtime DatabaseCritica
L’intero database è scrivibile da chiunquedb-root-write-openRealtime DatabaseCritica
Un nodo è leggibile da chiunquedb-open-readRealtime DatabaseMedia
Un nodo è scrivibile da chiunquedb-open-writeRealtime DatabaseAlta
Una regola del figlio è annullata dal padredb-cascade-overrideRealtime DatabaseAlta
Qualsiasi utente autenticato può leggere o scrivere l’intero databasedb-auth-only-rootRealtime DatabaseAlta
Le regole di Realtime Database non sono state lettedb-parse-errorRealtime DatabaseInfo

Domande

Cosa guarda il controllo delle regole Firebase?

Legge le regole di sicurezza Firebase che incolla per Firestore, Cloud Storage e Realtime Database e cerca regole che permettono a chiunque di leggere o scrivere, regole che richiedono solo un utente autenticato, fiducia nei dati del client e schemi simili.

Il testo delle mie regole viene salvato?

No. Le regole vengono elaborate in memoria sulla rete di Cloudflare e scartate appena la risposta è stata inviata. Insieme al testo non viene salvato né registrato nulla.

Quanto posso incollare?

Fino a 48,000 caratteri in totale nei tre campi. Se le sue regole sono più lunghe, incolli la parte che vuole far controllare.

Perché una regola di lettura pubblica può andare bene?

Alcuni dati sono pubblici di proposito, come un catalogo prodotti o gli articoli di un blog. Per Firestore e Storage il controllo conta una lettura senza condizione come problema medio e toglie 10 punti, perché non può sapere se i dati sono privati. Se i dati sono pubblici di proposito, può accettare questo costo. Solo nella radice del Realtime Database giudica più grave una lettura aperta.

Cosa sono le regole in modalità di test?

Quando crea un database Firestore in modalità di test, la console scrive una regola che permette tutto fino a una certa scadenza, con request.time. Fino ad allora chiunque può leggere e scrivere; dopo, tutto viene negato e l’app smette di funzionare. La sostituisca con condizioni vere prima del lancio.

Come si propagano a cascata le regole di Realtime Database?

In Realtime Database una regola che concede l’accesso vale per tutto ciò che sta sotto, e un figlio non può ritirarla. Una regola più severa su un figlio sotto un padre permissivo non si applica mai, ed è per questo che il controllo la segnala.

Cosa significa il voto?

Riassume solo ciò che i controlli riescono a leggere nel testo incollato: un punteggio di 100 meno una penalità per ogni controllo fallito, stabilita dal problema più grave che quel controllo ha trovato, e qualsiasi problema critico dà F. Una voce media può anche essere un’euristica che chiede di verificare a mano, perché il solo testo non mostra se è un problema reale. Una A non dimostra che il progetto sia sicuro, perché custom claims, App Check e i dati stessi sono fuori portata.