Poznaj reguły bezpieczeństwa Firebase dotyczące przechowywania w chmurze

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

Podobnie jak uwierzytelnianie Firebase ułatwia uwierzytelnianie użytkowników, reguły bezpieczeństwa Firebase dla Cloud Storage ułatwiają autoryzację użytkowników i sprawdzanie żą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 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 Firebase Realtime Database ma podobną funkcję zwaną Regułami bezpieczeństwa bazy danych Firebase Realtime

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 dostępne wyłącznie po stronie klienta. Reguły bezpieczeństwa Firebase dla Cloud Storage łączą się z uwierzytelnianiem Firebase w celu zapewnienia bezpieczeństwa opartego na użytkownikach. Kiedy użytkownik jest uwierzytelniany za pomocą uwierzytelniania Firebase, zmienna request.auth w regułach bezpieczeństwa 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 ma null . Dzięki temu możesz bezpiecznie kontrolować dostęp do danych dla poszczególnych użytkowników. 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 umożliwia określenie reguł autoryzacji dla poszczególnych plików i ścieżek znajdujących się na naszych serwerach oraz określenie dostępu do plików w Twojej aplikacji. Na przykład domyślne reguły bezpieczeństwa Cloud Storage wymagają uwierzytelnienia Firebase w celu wykonania jakichkolwiek 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 przeglądając kartę Rules w sekcji Przechowywanie.

Walidacji danych

Reguł bezpieczeństwa Firebase dla Cloud Storage można również używać do sprawdzania poprawności danych, w tym sprawdzania nazwy i ścieżki pliku, 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