Omówienie reguł zabezpieczeń Firebase dla Cloud Storage

Tradycyjnie bezpieczeństwo było jedną z najbardziej skomplikowanych części procesu tworzenia aplikacji. W większości aplikacji deweloperzy muszą tworzyć i uruchamiać serwer, który obsługuje uwierzytelnianie (identyfikację użytkownika) i autoryzację (czynności, które może wykonywać użytkownik). Uwierzytelnianie i autoryzacja są trudne do skonfigurowania i prawidłowe, a przy tym mają kluczowe znaczenie dla powodzenia danej usługi.

Podobnie jak Firebase Authentication ułatwia uwierzytelnianie użytkowników, Firebase Security Rules w Cloud Storage ułatwia autoryzowanie użytkowników i weryfikowanie żądań. Cloud Storage Security Rules załatwia Ci to zadanie, pozwalając na określenie uprawnień na podstawie ścieżki. Wystarczy kilka linii kodu, aby napisać reguły autoryzacji, które ograniczają Cloud Storage do określonego użytkownika lub ograniczają rozmiar przesyłanych plików.

Firebase Realtime Database ma podobną funkcję o nazwie Firebase Realtime Database Security Rules.

Uwierzytelnianie

Znajomość tożsamości użytkowników jest ważnym elementem tworzenia aplikacji, a Firebase Authentication zapewnia łatwe w użyciu, bezpieczne rozwiązanie po stronie klienta do uwierzytelniania. Firebase Security RulesCloud Storage jest powiązany z Firebase Authentication w ramach zabezpieczeń opartych na użytkownikach. Gdy użytkownik zostanie uwierzytelniony za pomocą Firebase Authentication, zmienna request.auth w funkcji Cloud Storage Security Rules staje się obiektem zawierającym unikalny identyfikator użytkownika (request.auth.uid) i wszystkie inne informacje o użytkowniku w tokenie (request.auth.token). Gdy użytkownik nie jest uwierzytelniony, zmienna request.auth ma wartość null. Dzięki temu możesz bezpiecznie kontrolować dostęp do danych w poszczególnych przypadkach. Więcej informacji znajdziesz w sekcji Uwierzytelnianie.

Autoryzacja

Identyfikacja użytkownika to tylko część zabezpieczeń. Gdy już się dowiesz, kim są, musisz kontrolować dostęp tej osoby do plików w usłudze Cloud Storage.

Cloud Storage umożliwia określenie zasad autoryzacji na poziomie pliku i ścieżki, które działają na naszych serwerach i określają dostęp do plików w aplikacji. Na przykład domyślne Cloud Storage Security Rules wymaga Firebase Authentication, aby wykonać jakiekolwiek operacje read lub write na wszystkich plikach:

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

Aby edytować te reguły, wybierz aplikację Firebase w konsoli Firebase i otwórz kartę Rules w sekcji Pamięć.

Walidacja danych

Firebase Security Rules dla Cloud Storage może też służyć do weryfikacji danych, w tym do weryfikacji nazwy i ścieżki pliku, a także właściwości metadanych pliku, np. contentType i 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/.*');
    }
  }
}

Dalsze kroki

  • Zacznij planować tworzenie reguł dla swoich zbiorników Cloud Storage.

  • Dowiedz się więcej o zabezpieczaniu danych za pomocą reguł bezpieczeństwa.