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ę (jego uprawnienia). Uwierzytelnianie i autoryzacja są trudne do skonfigurowania, jeszcze trudniejsze do prawidłowego wykonania i bardzo ważne dla powodzenia Twojego produktu.

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ż je poznasz, musisz mieć możliwość kontrolowania ich dostępu do plików w 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 sprawdzania danych, w tym do weryfikowania nazwy i ścieżki pliku oraz właściwości metadanych pliku, takich jak contentTypesize.

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.