2017-01-24 5 views
6

Ich arbeite an einer Android-App, die von einer Firebase database liest. App-Benutzer melden sich nicht an oder ändern die Datenbank nicht. Alle App-Nutzer werden dieselben Daten betrachten. Ich verwende Firebase für seine Echtzeit-Update-Funktionen.FireBase-Datenbankzugriff auf eine Android-App beschränken

Im Idealfall möchte ich den Zugriff auf die Datenbank einschränken, so dass nur meine App die Daten lesen kann.

Ich kenne ein paar Dinge, die ich tun könnte:

1. Schreiben Sie Sicherheitsregeln, die jeder lesen können, das heißt

{ 
    "rules": { 
    ".read": true, 
    ".write": false 
    } 
} 

Con: Wer lesen kann :(

2. Schreiben Sie die Sicherheitsregeln allow authenticated users to read, und geben Sie dann den Benutzernamen und das Passwort fest in die App ein:

{ 
    "rules": { 
    "$user_id":{ 
     ".read": "auth.uid === $user_id", 
     ".write": false 
    } 
    } 
} 

Con: Hard Codierung eines Benutzernamens und Passwort in einer App scheint sehr falsch. Außerdem wird die Datenbank nicht gesperrt, da jeder die App dekompilieren, die google-services.json und den fest codierten Benutzernamen/das Passwort abrufen und eine eigene App schreiben kann, die meinen Paketnamen teilt.

Googling hat this offenbart, die zum Schreiben spezifisch ist, und this, die "nein" sagt, aber ein paar Jahre alt ist.

Was ist der korrekte Ansatz, der den Zugriff auf die Datenbank einschränkt? Komme ich aus der falschen Richtung?

+1

Die Antwort, die du verlinkt hast, ist immer noch richtig: es gibt keine Möglichkeit zu limitieren t Zugriff auf Ihre Firebase-Datenbank nur auf Ihre App. –

+0

Okay, danke @FrankvanPuffelen. – Michiyo

+0

Was ist Ihre endgültige Wahl? – androfan

Antwort

0

Wenn Sie Ihre Anwendung zum Firebase-Projekt hinzufügen, müssen Sie das SHA1-Zertifikat Ihrer App angeben, damit niemand außer Ihnen auf Ihre Daten zugreifen kann.

+5

Es ist nicht wahr. Mit '" .read ": true,' jeder kann auf Web-basierte Datenbank-Schnittstelle über http://project_name.firebaseio.com/ – androfan

+0

zugreifen Sie werden Angst haben, wenn Sie Ihren Projektnamen auf diese App setzen: https://play.google .com/store/apps/details? id = amit.ya.fire.realtimefirefibase – iMobaio

1

3. Verwenden Sie FirebaseAuth und signInAnonymously() Methode

Referenz: https://firebase.google.com/docs/auth/android/anonymous-auth

anpassen Dann Sicherheitsregeln:

{ 
     "rules": { 
     ".read": "auth != null", 
     ... 
     } 
    } 

Con: mehrere Konten verwendet nur für die gleichen Daten zu lesen

+0

Das scheint noch weniger sicher als # 2, da ich die Fähigkeit verstecken/verschlüsseln/verschleiern würde (nicht großartig, aber besser als nichts) ?) einen Benutzernamen und ein Passwort. Kannst du erklären, warum du das für besser hältst? – Michiyo

Verwandte Themen