Omówienie reguł zabezpieczeń Firebase dla Cloud Storage

Dawniej bezpieczeństwo było jednym z najbardziej złożonych elementów aplikacji w Google Cloud. W większości aplikacji programiści muszą utworzyć i uruchomić serwer, obsługuje uwierzytelnianie (to, kim jest użytkownik) i autoryzację (co użytkownik może robić). Uwierzytelnianie i autoryzacja są trudne do skonfigurowania, trudniejsze do dokończenia. są kluczowe dla sukcesu produktu.

Podobnie jak Firebase Authentication ułatwia uwierzytelnianie użytkowników, Firebase Security Rules dla Cloud Storage ułatwia autoryzowanie użytkowników i weryfikować żądania. Cloud Storage Security Rules zajmuje się zarządzaniem złożonością przez co pozwala określić uprawnienia na podstawie ścieżki. Za pomocą kilku linijek kodu może zapisywać reguły autoryzacji, które ograniczają żądania Cloud Storage do do konkretnego użytkownika lub ograniczają rozmiar przesyłanych danych.

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

Uwierzytelnianie

Wiedza na temat użytkowników jest ważną częścią tworzenia aplikacji. Firebase Authentication zapewnia łatwe w użyciu, bezpieczne rozwiązanie przeznaczone tylko po stronie klienta do uwierzytelnienia. Firebase Security Rules dla Cloud Storage remisuje z Firebase Authentication zabezpieczeń opartych na użytkownikach. Gdy użytkownik zostanie uwierzytelniony za pomocą Firebase Authentication, zmienna request.auth w tabeli Cloud Storage Security Rules stanie się obiektem, który zawiera unikalny identyfikator użytkownika (request.auth.uid) i wszystkich pozostałych użytkowników informacje w tokenie (request.auth.token). Gdy użytkownik nie jest uwierzytelniono, request.auth ma wartość null. Dzięki temu możesz bezpiecznie kontrolować dostęp do danych dla każdego użytkownika. Więcej informacji znajdziesz w Authentication (Uwierzytelnianie).

Autoryzacja

Identyfikacja użytkownika stanowi tylko część zapewniania bezpieczeństwa. Wiedząc, kim są, potrzebują sposobu na kontrolowanie swojego dostępu do plików w usłudze Cloud Storage.

Cloud Storage umożliwia określenie autoryzacji dla poszczególnych plików i ścieżek które działają na naszych serwerach i określają dostęp do plików w Twojej aplikacji. Na przykład domyślna Cloud Storage Security Rules wymaga Firebase Authentication w aby wykonać dowolne operacje read lub write na wszystkich plikach:

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

Możesz edytować te reguły, wybierając aplikację Firebase w konsoli Firebase i wyświetlając kartę Rules w sekcji Pamięć.

Walidacja danych

Interfejsu Firebase Security Rules w kategorii Cloud Storage można też używać do weryfikacji danych, w tym: weryfikacji 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