Informationen zu Firebase-Sicherheitsregeln für Cloud Storage

Traditionell gehört Sicherheit zu den komplexesten Aspekten der App-Entwicklung. In den meisten Anwendungen müssen Entwickler einen Server erstellen und ausführen, der die Authentifizierung (wer ein Nutzer ist) und die Autorisierung (was ein Nutzer tun kann) übernimmt. Die Einrichtung von Authentifizierung und Autorisierung ist schwierig und es ist noch schwieriger, sie richtig zu konfigurieren. Sie sind jedoch entscheidend für den Erfolg Ihres Produkts.

Ähnlich wie Firebase Authentication die Authentifizierung Ihrer Nutzer vereinfacht, erleichtern Firebase Security Rules für Cloud Storage die Autorisierung von Nutzern und die Validierung von Anfragen. Cloud Storage Security Rules verwalten die Komplexität für Sie, indem Sie pfadbasierte Berechtigungen festlegen können. Mit nur wenigen Codezeilen können Sie Autorisierungsregeln schreiben, die Cloud Storage Anfragen auf einen bestimmten Nutzer beschränken oder die Größe eines Uploads begrenzen.

Die Firebase Realtime Database bietet eine ähnliche Funktion namens Firebase Realtime Database Security Rules

Authentifizierung

Zu wissen, wer Ihre Nutzer sind, ist ein wichtiger Teil der Entwicklung einer Anwendung, und Firebase Authentication bietet eine benutzerfreundliche, sichere und rein clientseitige Lösung für die Authentifizierung. Firebase Security Rules für Cloud Storage sind in Firebase Authentication für die nutzerbasierte Sicherheit eingebunden. Wenn ein Nutzer mit Firebase Authentication authentifiziert wird, wird die Variable request.auth in Cloud Storage Security Rules zu einem Objekt, das die eindeutige ID des Nutzers (request.auth.uid) und alle anderen Nutzerinformationen im Token (request.auth.token) enthält. Wenn der Nutzer nicht authentifiziert ist, ist request.auth null. So können Sie den Datenzugriff sicher pro Nutzer steuern. Weitere Informationen finden Sie im Abschnitt Authentifizierung.

Autorisierung

Die Identifizierung Ihres Nutzers ist nur ein Teil der Sicherheit. Sobald Sie wissen, wer er ist, müssen Sie den Zugriff auf Dateien in Cloud Storage steuern können.

Cloud Storage können Sie Autorisierungsregeln pro Datei und pro Pfad festlegen, die auf unseren Servern gespeichert sind und den Zugriff auf die Dateien in Ihrer App bestimmen. Die Standard-Cloud Storage Security Rules erfordern Firebase Authentication, um `read`- oder `write`-Vorgänge für alle Dateien auszuführen:

service firebase.storage {
  match /b/{bucket}/o {
    match /someFolder/{fileName} {
      allow read, write: if request.auth != null;
    }
  }
}

Sie können diese Security Rules in der Firebase Konsole bearbeiten. Rufen Sie dazu den Tab Databases & Storage > Storage > Rules auf.

Datenvalidierung

Firebase Security Rules für Cloud Storage können auch zur Datenvalidierung verwendet werden, einschließlich der Validierung von Dateiname und Pfad sowie von Dateimetadaten-Eigenschaften wie contentType und size.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

Nächste Schritte