Le regole di sicurezza di Firebase forniscono una protezione robusta e completamente personalizzabile per i tuoi dati in Cloud Firestore, Realtime Database e Cloud Storage. Puoi iniziare facilmente con le regole seguendo i passaggi di questa guida, mettendo al sicuro i tuoi dati e proteggendo la tua app da utenti malintenzionati.
Comprendere il linguaggio delle regole di sicurezza di Firebase
Prima di iniziare a scrivere regole, vale la pena dedicare un po' di tempo a rivedere il linguaggio specifico delle regole di sicurezza di Firebase per i prodotti Firebase che stai utilizzando. Cloud Storage sfrutta un superset di Common Expression Language (CEL) che si basa sulle istruzioni match
e allow
che impostano una condizione per l'accesso a un percorso definito.
Inizia imparando la sintassi di base del linguaggio Firebase Security Rules .
Imposta l'autenticazione
Se non l'hai già fatto, aggiungi Firebase Authentication alla tua app . Firebase Authentication supporta molti metodi di autenticazione comuni e si integra con Firebase Security Rules per fornire funzionalità di verifica complete.
Puoi impostare ulteriori informazioni di autenticazione personalizzate per la tua app.
Ulteriori informazioni sulle regole di sicurezza Firebase e sull'autenticazione Firebase .
Definisci le tue strutture di dati e regole
Il modo in cui strutturi i tuoi dati potrebbe influenzare il modo in cui strutturi e implementi le tue regole. Mentre definisci le tue strutture di dati, considera le implicazioni che potrebbero avere sulla tua struttura di regole.
Ad esempio, in Cloud Storage, potresti voler includere un campo che denota un ruolo specifico per ciascun utente. Quindi, le tue regole possono leggere quel campo e utilizzarlo per concedere l'accesso basato sui ruoli. Puoi anche creare un database Cloud Firestore, archiviare i criteri di accesso nei documenti Cloud Firestore, quindi accedere a tali documenti dalle regole di sicurezza di Cloud Storage.
Mentre definisci le tue architetture di dati e regole, tieni presente il modo in cui le regole si sovrappongono o non si sovrappongono, a seconda del tuo prodotto. Con Realtime Database, le regole funzionano dall'alto verso il basso, con regole meno profonde che sovrascrivono regole più profonde. Se una regola concede autorizzazioni di lettura o scrittura su un determinato percorso, concede anche l'accesso a tutti i nodi figlio sotto di essa. Al contrario, con Cloud Firestore e Cloud Storage, le regole si applicano solo a livelli specifici della gerarchia dei dati e tu scrivi regole esplicite per controllare l'accesso a diversi livelli.
Accedi alle tue regole
Per visualizzare le regole esistenti, utilizza l'interfaccia a riga di comando di Firebase o la console di Firebase. Assicurati di modificare le tue regole utilizzando lo stesso metodo, in modo coerente, per evitare di sovrascrivere erroneamente gli aggiornamenti. Se non sei sicuro che le regole definite localmente riflettano gli aggiornamenti più recenti, la console di Firebase mostra sempre la versione distribuita più di recente delle regole di sicurezza di Firebase.
Per accedere alle tue regole dalla console Firebase , seleziona il tuo progetto, quindi nel pannello di navigazione a sinistra fai clic su Archiviazione . Fai clic su Regole una volta che ti trovi nel database o nel bucket di archiviazione corretto.
Per accedere alle tue regole dall'interfaccia a riga di comando di Firebase, vai al file delle regole annotato nel tuo file firebase.json .
Scrivi regole di base
Mentre sviluppi la tua app e comprendi le regole, prova a implementarle per affrontare alcuni casi d'uso di base , inclusi i seguenti:
- Solo proprietario del contenuto: limita l'accesso al contenuto da parte dell'utente.
- Accesso misto: limitare l'accesso in scrittura da parte dell'utente, ma consentire l'accesso pubblico in lettura.
- Accesso basato sugli attributi: limitare l'accesso a un gruppo o tipo di utente.
Metti alla prova le tue regole
Se stai configurando le regole di sicurezza di Firebase nella console di Firebase, puoi utilizzare Firebase Rules Playground per convalidare rapidamente il comportamento. Tuttavia, consigliamo test più approfonditi con Local Emulator Suite prima di distribuire le modifiche alla produzione.
Distribuisci le regole
Utilizza la console di Firebase o l'interfaccia a riga di comando di Firebase per distribuire le tue regole alla produzione. Segui i passaggi descritti in Gestisci e distribuisci le regole di sicurezza di Firebase .