2016-02-15 7 views
37

Firebase fornisce il back-end del database in modo che gli sviluppatori possano concentrarsi sul codice lato client.Come limitare la modifica dei dati di Firebase?

Quindi, se qualcuno accetta il mio firebase uri (ad esempio, https://firebaseinstance.firebaseio.com), svilupparlo 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?

risposta

38

Grazie a entrambi per questa discussione. Tuttavia, volevo aggiungere un dettaglio.

@Frank van Puffelen,

Lei ha citato 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 progetto Firebase
  3. Vai credenziali
  4. Sotto chiavi API, selezionare il tasto del browser associato con il progetto Firebase (dovrebbe avere la stessa chiave come la chiave API si utilizza per inizializzare la vostra applicazione Firebase.)
  5. Sotto "Accetta le richieste da questi referrer HTTP (siti web), è sufficiente aggiungere l'URL della tua app.

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

Questo è anche descritta qui nel Firebase lancio-lista di controllo qui: https://firebase.google.com/support/guides/launch-checklist

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

Ancora, grazie mille!

+1

quando passo alla console dell'API di Google, non vedo l'opzione per bloccare il referrer HTTP. Screenshot sarà utile. grazie – rattanak

+0

Hai provato a seguire i passaggi precedenti? Dovrebbe portarti proprio lì. Per motivi di sicurezza, non prenderò uno screencap. Ricordarsi di cercare la chiave del browser. buona fortuna. – prufrofro

+2

Che dire quando si utilizza Firebase con un'app mobile ibrida, utilizzando un framework come ionico, come può funzionare la white list? Eventuali suggerimenti? – Dinana

23

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

Ad esempio: non ho alcun problema a dirvi che la mia banca ospita il suo sito Web presso bankofamerica.com e che parla del protocollo HTTP lì. 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 dati, il database deve essere protetto con:

  • regole di convalida che garantiscono tutti i dati aderisce ad una struttura che si desidera
  • regole di autorizzazione per garantire che ogni bit di dati può essere solo letto e modificato dagli utenti autorizzati

Questo è tutto coperto nello Firebase documentation on Security & Rules, che consiglio vivamente.

Con queste regole di sicurezza in vigore, l'unico modo di qualcun altro app può accedere ai dati nel database è se copiare la funzionalità della vostra applicazione, hanno gli utenti accedono a loro app al posto della vostra e accedi/leggi/scrivi nel 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à.

+1

non proprio la risposta che sto cercando. Lascia che ti chieda in un modo diverso. Supponiamo che ti abbia dato questo URL al mio firebase 'https: // tinderclone.firebaseio.com /' e 'https: // tinderclone.firebaseio.com/profiles.json'. Sono veri e propri database Firebase. Puoi sviluppare un'app da essa, creare un modulo di registrazione e un modulo di accesso con e-mail. Dal momento che la mia app consente a chiunque di registrarsi con la posta elettronica, dopo la registrazione, si sarà in grado di leggere tutti i dati? Ti farò un'altra domanda più tardi. Grazie – rattanak

+2

Dipende da come proteggi il tuo database. Semplicemente aggiungendo '" .read ": false' impedirà a chiunque di vedere i dati. Probabilmente vuoi consentire un po 'di più, ma tutto dipende dal tuo caso d'uso. La protezione dei dati è trattata nella [documentazione di Firebase su sicurezza e regole] (https://www.firebase.com/docs/security/). –

1

Per quanto riguarda il bianco-lista Auth per applicazioni mobili, in cui il nome di dominio non è applicabile, Firebase avere

1) SHA1 fingerprint per applicazioni Android e

2) App Store ID and Bundle ID and Team ID (if necessary) per il vostro applicazioni iOS

che dovrai configurare nella console Firebase.

Con questa protezione, dal momento che la convalida non è solo se qualcuno ha API key valida, dominio Auth, ecc, ma anche, è che sta arrivando dai nostri applicazioni 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.

Fore ulteriori informazioni, https://firebase.google.com/support/guides/launch-checklist