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 niezbędne do powodzenia 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ę – są to 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 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, request.auth ma wartość null. Umożliwia to bezpieczne kontrolowanie dostępu do danych na podstawie 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 w celu wykonywania operacji read lub write na wszystkich plikach:

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

Te Security Rules możesz edytować 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.