Omówienie reguł zabezpieczeń Firebase dla Cloud Storage

Tradycyjnie zabezpieczenia były jednym z najbardziej złożonych elementów tworzenia aplikacji. W większości aplikacji deweloperzy muszą utworzyć i uruchomić serwer, który obsługuje uwierzytelnianie (określanie tożsamości użytkownika) i autoryzację (określanie, co użytkownik może robić). Uwierzytelnianie i autoryzacja są trudne do skonfigurowania i jeszcze trudniejsze do prawidłowego wdrożenia, a jednocześnie mają kluczowe znaczenie dla sukcesu produktu.

Podobnie jak Firebase Authentication ułatwia uwierzytelnianie użytkowników, Firebase Security Rules w przypadku Cloud Storage ułatwia autoryzowanie użytkowników i weryfikowanie żądań. Cloud Storage Security Rules zarządza złożonością, umożliwiając określanie uprawnień na podstawie ścieżki. Za pomocą kilku wierszy kodu możesz napisać reguły autoryzacji, które ograniczają Cloud Storage żądania do określonego użytkownika lub limitują rozmiar przesyłanego pliku.

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

Uwierzytelnianie

Znajomość użytkowników jest ważnym elementem tworzenia aplikacji, a Firebase Authenticationzapewnia łatwe w użyciu, bezpieczne rozwiązanie uwierzytelniania po stronie klienta. Firebase Security Rules w przypadku Cloud Storage jest powiązane z Firebase Authentication w zakresie zabezpieczeń opartych na użytkownikach. Gdy użytkownik zostanie uwierzytelniony za pomocą Firebase Authentication, zmienna request.authCloud Storage Security Rules staje się obiektem, który zawiera 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. Umożliwia to bezpieczne kontrolowanie dostępu do danych na poziomie poszczególnych użytkowników. Więcej informacji znajdziesz w sekcji Uwierzytelnianie.

Autoryzacja

Identyfikacja użytkownika to tylko część zabezpieczeń. Gdy już wiesz, kim są te osoby, musisz mieć możliwość kontrolowania ich dostępu do plików na Cloud Storage.

Cloud Storage umożliwia określanie reguł autoryzacji dla poszczególnych plików i ścieżek, które są przechowywane na naszych serwerach i określają dostęp do plików w aplikacji. Na przykład domyślna reguła Cloud Storage Security Rules wymaga Firebase Authentication, aby można było wykonywać operacje read lub write na wszystkich plikach:

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

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

Walidacja danych

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

  • Zacznij planować tworzenie reguł dla koszyków Cloud Storage.

  • Dowiedz się więcej o zabezpieczaniu danych za pomocą reguł bezpieczeństwa.