Come limitare la modifica dei dati di Firebase?

Firebase fornisce il back-end del database in modo che gli sviluppatori possano concentrarsi sul codice lato client.

Quindi, se qualcuno prende il mio uri firebase (ad esempio, https://firebaseinstance.firebaseio.com ), sviluppa su di esso localmente .

Quindi, sarebbero in grado di creare un’altra app dalla mia istanza Firebase, registrarsi e autenticarsi per leggere tutti i dati della mia app Firebase?

Grazie a tutti e due per questa discussione. Tuttavia, volevo aggiungere un dettaglio.

@ Frank Di Puffelen,

Hai menzionato l’attacco di phishing. In realtà esiste un modo per garantire questo.

Se accedi alla tua console di API Manager di googleAPI, hai la possibilità di bloccare il referrer HTTP da cui la tua app accetterà la richiesta.

  1. visita https://console.developers.google.com/apis
  2. Vai al tuo progetto Firebase
  3. Vai alle credenziali
  4. Sotto le chiavi API, seleziona la chiave del Browser associata al tuo progetto Firebase (dovrebbe avere la stessa chiave della chiave API che usi per inizializzare la tua app Firebase).
  5. In “Accetta richieste da questi referrer HTTP (siti Web), aggiungi semplicemente l’URL della tua app.

Questo dovrebbe consentire solo al dominio autorizzato di utilizzare la tua app.

Questo è anche descritto qui nella checklist di lancio di Firebase qui: https://firebase.google.com/support/guides/launch-checklist

Forse la documentazione di Firebase potrebbe renderlo più visibile o bloccare automaticamente il dominio per impostazione predefinita e richiedere agli utenti di consentire l’accesso?

Ancora una volta, grazie mille!

Il fatto che qualcuno conosca il tuo URL non è un rischio per la sicurezza.

Ad esempio: non ho alcun problema a dirti che la mia banca ospita il suo sito web presso bankofamerica.com e che lì parla il protocollo HTTP. A meno che tu non conosca anche le credenziali che uso per accedere a quel sito, conoscere l’URL non ti fa bene.

Per proteggere i tuoi dati, il tuo database dovrebbe essere protetto con:

  • regole di convalida che assicurano che tutti i dati aderiscano alla struttura desiderata
  • regole di authorization per garantire che ogni bit di dati possa essere letto e modificato solo dagli utenti autorizzati

Tutto questo è coperto dalla documentazione di Firebase su Security & Rules , che consiglio vivamente.

Con queste regole di sicurezza in atto, l’unico modo in cui l’app di qualcun altro può accedere ai dati nel tuo database è se copiano la funzionalità della tua applicazione, fai in modo che gli utenti accedano alla loro app invece che al tuo e acceda / leggi / scrivi a il tuo database; essenzialmente un attacco di phishing. In questo caso non vi è alcun problema di sicurezza nel database, anche se probabilmente è il momento di coinvolgere alcune autorità.

Per quanto riguarda la white list di Auth per le app mobili, dove il nome di dominio non è applicabile, Firebase ha

1) SHA1 fingerprint per applicazioni Android e

2) App Store ID and Bundle ID and Team ID (if necessary) per le tue app iOS

che dovrai configurare nella console Firebase.

Con questa protezione, poiché la convalida non è solo se qualcuno ha una chiave API valida, dominio Auth, ecc, ma anche, proviene dalle nostre app autorizzate e domain name/HTTP referrer in case di Web .

Detto questo, non dobbiamo preoccuparci se questi parametri API e altri parametri di connessione sono esposti agli altri.

Per maggiori informazioni, https://firebase.google.com/support/guides/launch-checklist