2016-06-21 17 views
1

Meine Swift iOS App verwendet nur Firebase Anonymous Login. Ich mache mir Sorgen um die Sicherheit meiner Firebase-Datenbank, da anscheinend jeder auf meine Daten zugreifen oder sie löschen kann (über einen Browser usw.?).Swift: Firebase: So stellen Sie sicher, dass niemand auf meine db zugreifen kann, mit Ausnahme meiner App

Wie kann ich meine db sichern, so dass nur meine iOS App darauf zugreifen kann?

Ich hätte erwartet, dass das Firebase-Dashboard erlauben, einen API-Schlüssel zu generieren, den ich in meiner App einbetten kann, aber das scheint nicht der Fall zu sein.

+2

Wenn Ihre App direkt mit der db kommuniziert, wäre es für jemanden einfach, diese Kommunikation zu erfassen/zu analysieren und Ihre App vollständig zu umgehen und direkt mit der db zu sprechen. Sie müssen im Grunde einen Webservice implementieren, der die Schnittstelle herstellt. so wäre es app <-> webservice <-> db, anstelle von anyone_who_wants_to <-> db –

+0

eigentlich ist es sehr einfach zu jedermanns firebase db zugreifen, wenn sie es nicht gesichert haben. Alles, was Sie brauchen, ist die URL der Firebase-App, die normalerweise leicht zu erraten ist. und dann können Sie Schreibbefehle direkt an sie ausgeben. – Kashif

Antwort

1

You need to write security rules.

Jeder kann Ihre URL sehen, aber Sicherheitsregeln sind, wie Sie diktieren die Zugang zu welchen Stücke von Daten hat.

Diese Regeln verhalten sich wie Anmerkungen zu Ihrer Datenstruktur und geben an, welche Einschränkungen erfüllt sein müssen, um das Lesen oder Schreiben zu ermöglichen.

Nehmen wir an, Sie möchten Ihre Datenbank sichern, damit nur authentifizierte Benutzer auf die Datenbank zugreifen können. Dies sind die Standardregeln der Echtzeitdatenbank.

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

Die auth Variable eine serverseitige Wert, der den aktuellen authentifizierten Benutzer speichert. Die Regel prüft, ob diese Variable einen Wert enthält und daher einen angemeldeten Benutzer enthält.

Ich habe erwartet, dass die Firebase Armaturenbrett erlaubt einen API-Schlüssel zu generieren, die ich in meiner Anwendung einbetten kann, aber das scheint nicht der Fall zu sein .

Die Firebase Konsole gibt Ihnen ein geheimen Schlüssel, die Ihnen vollen Zugriff unabhängig von Regeln gibt. Aber wenn Sie dies in Ihrer App einbetten, ist es nicht mehr sicher. Aus diesem Grund verwenden Sie die Authentifizierung, da dies Token für diesen bestimmten Schlüssel für den bestimmten angemeldeten Benutzer erstellt.

+0

Wie ich speziell in meiner Frage geschrieben habe, habe ich keine Benutzer-Logins, so dass benutzerbasierte Sicherheit keine Option ist. – Kashif

+1

Ihre App verwendet anonyme Anmeldung, diese Leute sind Benutzer mit 'UID's, die für diese Regeln funktioniert. Sie können diese Regeln für alles verwenden, was vom Client mit der UID erstellt wird, es muss nicht der Knoten "Benutzer" sein. –

+0

Ich sehe, wie kann ich Ihren Code ändern, so dass jede UID Zugriff auf alle Daten haben wird? – Kashif