2016-06-01 19 views
9

Sto pensando di passare a Firebase come database locale e online per la mia app per Android. Come per i documenti, Firebase memorizza le modifiche al database locale e poi lo inserisce nel DB online quando la rete è disponibile.How Secure è il database locale di Firebase in Android?

Nella mia app, inserirò alcuni dati davvero sensibili sull'utente nel database. Quindi ecco le mie domande,

  1. Quanto è sicuro il database Firebase locale?

  2. Quanto è difficile per un hacker ben intenzionato con gli strumenti giusti per hackerarlo?

  3. È solo un semplice file JSON come il database online, che può essere aperto a chiunque abbia accesso root?

Grazie.

+2

Come i documenti Firebase non dichiarano nient'altro, suppongo che i file locali siano solo file di database in chiaro. Chiunque abbia l'accesso come root può leggerlo ed estrarre tutti i dati. BTW: se i dati sono così sensibili sei sicuro di volerlo archiviare in chiaro sui server Firebase? – Robert

+1

Ho crittografato i dati, ma il problema è che ho bisogno di memorizzare la chiave per la crittografia anche nel database. Non è questo che sconfigge lo scopo? Qual è forse l'approccio migliore qui? –

risposta

2

In senso generale, Firebase Realtime Database può essere utilizzato offline. Tuttavia, l'aspettativa è che l'app debba essere connessa per la maggior parte del tempo e le modifiche al database che avvengono mentre la modalità offline verrà sincronizzata quando è connessa alla connettività. L'utilizzo offline al 100% non è un caso d'uso supportato, perché l'archivio dati canonico si trova sul server.

La copia locale del database è limitata a (10 MB, almeno su Android questo è il caso). Se hai intenzione di scrivere nel database oltre questo limite mentre sei offline, sfrutterà parte dei tuoi dati memorizzati nella cache per fare spazio a qualsiasi cosa tu stia aggiungendo. Quindi, non sarai più in grado di leggere quei valori sgomberati finché l'app non tornerà online. Peggio ancora, gestire un elenco crescente di scritture da applicare quando il back online è tassativo sull'app, quindi non si desidera pianificare molte scritture offline.

Inoltre, se si dispone di autorizzazioni o convalide definite per il proprio database, queste possono essere verificate solo sul server. Quindi, se stai scrivendo offline nella cache locale e non hai più un listener attivo, potresti non sapere mai se quelle scritture falliscono.

A causa di questi avvertimenti, è meglio non pensare a Firebase Realtime Database come database "offline". È meglio considerarlo come un database "sincronizzato" che si sincronizza attivamente con il server mentre è presente la connettività.

Problemi correlati