Omówienie reguł zabezpieczeń Firebase dotyczących przechowywania w chmurze

Tradycyjnie bezpieczeństwo było jedną z najbardziej złożonych części tworzenia aplikacji. W większości aplikacji programiści muszą zbudować i uruchomić serwer, który obsługuje uwierzytelnianie (kim jest użytkownik) i autoryzację (co użytkownik może zrobić). Uwierzytelnianie i autoryzacja są trudne do skonfigurowania, trudniejsze do uzyskania i mają kluczowe znaczenie dla sukcesu Twojego produktu.

Podobnie jak Uwierzytelnianie Firebase ułatwia uwierzytelnianie użytkowników, reguły zabezpieczeń Firebase dla Cloud Storage ułatwiają autoryzację użytkowników i weryfikację żądań. Reguły zabezpieczeń Cloud Storage zarządzają złożonością za Ciebie, umożliwiając określenie uprawnień opartych na ścieżce. W zaledwie kilku linijkach kodu możesz napisać reguły autoryzacji, które ograniczają żądania Cloud Storage do określonego użytkownika lub ograniczają rozmiar przesyłanego pliku.

Baza danych czasu rzeczywistego Firebase ma podobną funkcję o nazwie Reguły bazy danych czasu rzeczywistego Firebase

Uwierzytelnianie

Wiedza o tym, kim są Twoi użytkownicy, jest ważną częścią tworzenia aplikacji, a Uwierzytelnianie Firebase zapewnia łatwe w użyciu, bezpieczne rozwiązanie do uwierzytelniania wyłącznie po stronie klienta. Reguły zabezpieczeń Firebase dla Cloud Storage są powiązane z uwierzytelnianiem Firebase w celu zapewnienia bezpieczeństwa opartego na użytkownikach. Gdy użytkownik zostanie uwierzytelniony za pomocą uwierzytelniania Firebase, zmienna request.auth w regułach zabezpieczeń Cloud Storage 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 jest null . Pozwala to na bezpieczną kontrolę dostępu do danych dla każdego użytkownika. Więcej informacji znajdziesz w sekcji Uwierzytelnianie .

Upoważnienie

Identyfikacja użytkownika to tylko część bezpieczeństwa. Gdy już wiesz, kim są, potrzebujesz sposobu na kontrolowanie ich dostępu do plików w Cloud Storage.

Cloud Storage pozwala określić reguły autoryzacji na plik i na ścieżkę, które znajdują się 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 celu wykonania wszelkich operacji 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ęć.

Walidacji danych

Reguły zabezpieczeń Firebase dla Cloud Storage mogą być również używane do sprawdzania poprawności danych, w tym sprawdzania nazwy pliku i ścieżki, a także 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/.*');
    }
  }
}

Następne kroki