Omówienie reguł zabezpieczeń Firebase dla Cloud Storage

Tradycyjnie bezpieczeństwo było jednym z najbardziej złożonych aspektów tworzenia aplikacji. W większości aplikacji deweloperzy muszą utworzyć i uruchomić serwer, który obsługuje uwierzytelnianie (określanie tożsamości użytkownika) i autoryzację (określanie, co użytkownik może robić). Konfigurowanie uwierzytelniania i autoryzacji jest trudne, a jeszcze trudniejsze jest ich prawidłowe skonfigurowanie. Są one jednak kluczowe dla powodzenia Twojego produktu.

Podobnie jak Firebase Authentication ułatwia uwierzytelnianie użytkowników, Firebase Security Rules dla Cloud Storage ułatwia autoryzowanie użytkowników i sprawdzanie poprawności żądań. Cloud Storage Security Rules zarządzają złożonością, umożliwiając określanie uprawnień na podstawie ścieżki. Za pomocą kilku wierszy kodu możesz napisać reguły autoryzacji, które ograniczają żądania Cloud Storage do określonego użytkownika lub ograniczają rozmiar przesyłanego pliku.

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. Firebase Authentication to łatwe w użyciu, bezpieczne rozwiązanie do uwierzytelniania, które działa tylko po stronie klienta. Firebase Security Rules dla Cloud Storage są powiązane z Firebase Authentication w celu zapewnienia bezpieczeństwa opartego na użytkownikach. Gdy użytkownik jest uwierzytelniony za pomocą Firebase Authentication, zmienna request.auth w Cloud Storage Security Rules staje się obiektem, który zawiera 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, request.auth ma wartość null. Dzięki temu możesz bezpiecznie kontrolować dostęp do danych na poziomie użytkownika. Więcej informacji znajdziesz w sekcji Uwierzytelnianie.

Autoryzacja

Identyfikacja użytkownika to tylko część zabezpieczeń. Gdy już wiesz, kim jest użytkownik, musisz mieć możliwość kontrolowania jego dostępu do plików w Cloud Storage.

Cloud Storage umożliwia określanie reguł autoryzacji dla poszczególnych plików i ścieżek, które znajdują się na naszych serwerach i określają dostęp do plików w Twojej aplikacji. Na przykład domyślne Cloud Storage Security Rules wymagają Firebase Authentication, aby można było wykonywać operacje read lub write na wszystkich plikach:

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

Możesz edytować te Security Rules w konsoli Firebase, otwierając kartę Bazy danych i pamięć > Pamięć > Reguły.

Walidacja danych

Firebase Security Rules dla Cloud Storage można też używać do walidacji danych, w tym sprawdzania poprawności nazwy i ścieżki pliku oraz właściwości metadanych pliku, takich jak 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 Cloud Storage zasobników.

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