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.

Uwierzytelnianie Firebase ułatwia uwierzytelnianie użytkowników, reguły zabezpieczeń Firebase dla Cloud Storage ułatwiają autoryzację użytkowników i weryfikować żądania. Reguły zabezpieczeń Cloud Storage zarządzają złożonością reguł 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.

Baza danych czasu rzeczywistego Firebase ma podobną funkcję o nazwie Reguły zabezpieczeń Bazy danych czasu rzeczywistego Firebase

Uwierzytelnianie

Wiedza na temat użytkowników jest ważną częścią tworzenia aplikacji. Uwierzytelnianie Firebase to łatwe w użyciu, bezpieczne rozwiązanie przeznaczone tylko dla klienta do uwierzytelnienia. Reguły zabezpieczeń Firebase dla Cloud Storage łączą się z Uwierzytelnianiem Firebase zabezpieczeń opartych na użytkownikach. Gdy użytkownik zostanie uwierzytelniony za pomocą uwierzytelniania Firebase, zmienna request.auth w regułach zabezpieczeń Cloud Storage stanie się obiektem, który zawiera unikalny identyfikator użytkownika (request.auth.uid) oraz wszystkich pozostałych użytkowników w tokenie (request.auth.token). Gdy użytkownik nie jest uwierzytelniono, użytkownik 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 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ślne reguły zabezpieczeń Cloud Storage wymagają uwierzytelniania Firebase 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świetlenie karty Rules w sekcji Pamięć.

Walidacja danych

Reguł zabezpieczeń Firebase dla 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