Tradycyjnie bezpieczeństwo było jednym z najbardziej złożonych aspektó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ć). Konfigurowanie uwierzytelniania i autoryzacji jest trudne, a jeszcze trudniejsze jest ich prawidłowe skonfigurowanie. Są one jednak kluczowe dla powodzenia Twojego produktu.
Podobnie jak Firebase Authentication ułatwia uwierzytelnianie użytkowników, Firebase Security Rules dla Cloud Storage ułatwia autoryzowanie użytkowników i sprawdzanie poprawności żądań. Cloud Storage Security Rules zarządzają 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ą żądania Cloud Storage do określonego użytkownika lub ograniczają rozmiar przesyłanego pliku.
Firebase Realtime Database ma podobną funkcję o nazwie Firebase Realtime Database Security Rules
Uwierzytelnianie
Znajomość tożsamości użytkowników jest ważnym elementem tworzenia aplikacji.
Firebase Authentication to łatwe w użyciu, bezpieczne rozwiązanie
do uwierzytelniania, które działa tylko po stronie klienta. Firebase Security Rules dla Cloud Storage są powiązane z Firebase Authentication
w celu zapewnienia bezpieczeństwa opartego na użytkownikach. Gdy użytkownik jest uwierzytelniony za pomocą Firebase Authentication,
zmienna request.auth w Cloud 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, request.auth ma wartość null. Dzięki temu możesz bezpiecznie kontrolować dostęp do danych na poziomie użytkownika. Więcej informacji znajdziesz w sekcji
Uwierzytelnianie.
Autoryzacja
Identyfikacja użytkownika to tylko część zabezpieczeń. Gdy już wiesz, kim jest użytkownik, musisz mieć możliwość kontrolowania jego dostępu do plików w Cloud Storage.
Cloud Storage umożliwia określanie reguł autoryzacji dla poszczególnych plików i ścieżek, które znajdują się na naszych serwerach i określają dostęp do plików w Twojej aplikacji. Na przykład domyślne Cloud Storage Security Rules wymagają 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; } } }
Możesz edytować te Security Rules w konsoli Firebase, otwierając kartę Bazy danych i pamięć > Pamięć > Reguły.
Walidacja danych
Firebase Security Rules dla Cloud Storage można też używać do walidacji danych, w tym
sprawdzania poprawności 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 swoich Cloud Storage zasobników.
Dowiedz się więcej o zabezpieczaniu danych za pomocą reguł bezpieczeństwa.