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 niezbędne do powodzenia 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ę – są to 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 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 wartość null. Umożliwia to bezpieczne kontrolowanie dostępu do danych na podstawie 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 w
celu wykonywania operacji read lub write na wszystkich plikach:
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
Te Security Rules możesz edytować 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.