1

Also das letzte, was ich will, ist jeder Zugriff auf die Datenbank, die nicht soll. Benutzer in meiner App erstellen ein Konto mit einem Schlüssel und Kindern in meiner Datenbank (ein leicht zugängliches Benutzerprofil) und es erstellt auch einen Authentifizierungs-Account. Die Regeln der Datenbank geben an, dass nur authentifizierte Benutzer auf die Datenbank zugreifen können. Ist es möglich, dass jemand, der authentifiziert ist, irgendwie auf den Rest der Datenbank zugreift (vielleicht durch Hacking)? Dies ist meine erste App, die Firebase verwendet und ich möchte sicherstellen, dass Benutzerinformationen geschützt werden.Halten Firebase Daten sicher

Antwort

1

Es hängt von Ihre Regeln.

Wenn die Regel ist:

// These rules require authentication 
{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null" 
    } 
} 

Diese Art der Regel erlaubt vollen Lese- und Schreibzugriff auf authentifizierte Benutzer Ihrer App. Mit anderen Worten, ein authentifizierter Benutzer kann auf alle Daten in der Datenbank ohne irgendwelche Hacker zugreifen.

Wenn Sie etwas ähnliches zu dieser Regel festgelegt:

{ 
    "rules": { 
    "users": { 
     "$user_id": { 
     // grants write access to the owner of this user account 
     // whose uid must exactly match the key ($user_id) 
     ".write": "$user_id === auth.uid" 
     } 
    } 
    } 
} 

es Zugang zum Inhaber dieses Kontos gewährt Benutzer schreiben, aber nur diese Daten.

Dies bedeutet, dass Sie die Regeln festlegen müssen, um das gewünschte Ergebnis für jeden Knoten in Ihren Daten zu erhalten.

+0

Wenn die Regeln sind, wenn der Benutzer authentifiziert ist, erlauben Sie dann Lese-/Schreibzugriff, dass sie nur bearbeiten dürfen, was die App ihnen erlaubt zu editieren? – XvKnightvX

+0

@XvKnightvX Es ist nicht sicher. Wenn Sie mit den Daten authentifiziert sind, können Sie auf andere Weise darauf zugreifen, indem Sie beispielsweise nur die URL der Datenbank verwenden. –

+0

Ok, also müsste ich etwas ähnliches zu dem zweiten Regelsatz verwenden, den Sie in Ihrer Antwort haben. Jetzt hat meine App Benutzertypen (Benutzer Admin Besitzer) und es gibt einen Bereich von Daten für jedes einzelne Geschäft sowie einen separaten Bereich in der Datenbank, der eine Liste aller Benutzer enthält. Wie würde ich einschränken, auf welche Daten ein Benutzer basierend auf seiner Benutzerrolle zugreifen kann? – XvKnightvX