Reguły zabezpieczeń Firebase zapewniają solidną i w pełni konfigurowalną ochronę danych w Cloud Firestore, Bazie danych czasu rzeczywistego i Cloud Storage. Aby łatwo zacząć korzystać z reguł, wykonaj czynności opisane w tym przewodniku, aby zabezpieczyć swoje dane i chronić aplikację przed złośliwymi użytkownikami.
Omówienie języka reguł zabezpieczeń Firebase
Zanim zaczniesz pisać reguły, poświęć trochę czasu na zapoznanie się z językami reguł zabezpieczeń Firebase dla używanych przez Ciebie usług Firebase.
Cloud Storage korzysta z zestawu nadrzędnego języka CEL (Common Expression Language), który opiera się na instrukcjach match
i allow
, które określają warunek dostępu na określonej ścieżce.
Zacznij od poznania głównej składni języka reguł zabezpieczeń Firebase.
Skonfiguruj uwierzytelnianie
Dodaj Uwierzytelnianie Firebase do swojej aplikacji, jeśli jeszcze z niego nie korzystasz. Uwierzytelnianie Firebase obsługuje wiele popularnych metod uwierzytelniania i integruje się z regułami zabezpieczeń Firebase, aby zapewnić kompleksowe możliwości weryfikacji.
Możesz skonfigurować dodatkowe, niestandardowe informacje uwierzytelniające dla swojej aplikacji.
Dowiedz się więcej o regułach zabezpieczeń Firebase i Uwierzytelnianiu Firebase.
Definiowanie struktury danych i reguł
Sposób, w jaki uporządkujesz dane, może wpłynąć na sposób tworzenia struktury i wdrażania reguł. Definiując struktury danych, zastanów się, jaki wpływ mogą one mieć na strukturę reguł.
W Cloud Storage można na przykład uwzględnić pole oznaczające konkretną rolę każdego użytkownika. Dzięki temu reguły mogą odczytywać to pole i używać go do przyznawania dostępu opartego na rolach. Możesz też utworzyć bazę danych Cloud Firestore, zapisać kryteria dostępu w dokumentach Cloud Firestore, a następnie uzyskać dostęp do tych dokumentów za pomocą reguł zabezpieczeń Cloud Storage.
Definiując architektury danych i reguł, pamiętaj, że reguły działają kaskadowo lub nie kaskadowo, w zależności od usługi. W Bazie danych czasu rzeczywistego reguły działają od góry, a bardziej szczegółowe reguły zastępują te mniej szczegółowe. Jeśli reguła przyznaje uprawnienia do odczytu lub zapisu w określonej ścieżce, przyznaje też dostęp do wszystkich jej podrzędnych węzłów. Z kolei w Cloud Firestore i Cloud Storage reguły są stosowane tylko na określonych poziomach w hierarchii danych, a dodatkowo tworzysz jawne reguły kontrolujące dostęp na różnych poziomach.
Dostęp do reguł
Aby wyświetlić istniejące reguły, użyj interfejsu wiersza poleceń Firebase lub konsoli Firebase. Pamiętaj, aby w spójny sposób edytować reguły w ten sam sposób, aby uniknąć przypadkowego zastąpienia aktualizacji. Jeśli nie masz pewności, czy Twoje lokalnie zdefiniowane reguły odzwierciedlają najnowsze aktualizacje, w konsoli Firebase zawsze wyświetla się ostatnia wdrożona wersja reguł zabezpieczeń Firebase.
Aby uzyskać dostęp do reguł w konsoli Firebase, wybierz swój projekt, a potem w panelu użytkownika po lewej stronie kliknij Miejsce na dane. Po przejściu do właściwego zasobnika na dane lub bazy danych kliknij Reguły.
Aby uzyskać dostęp do reguł z poziomu interfejsu wiersza poleceń Firebase, otwórz plik reguł w pliku firebase.json.
Napisać podstawowe zasady
Tworząc aplikację i zapoznając się z regułami, spróbuj wdrożyć reguły, by rozwiązać kilka podstawowych przypadków użycia. Oto niektóre z nich:
- Tylko właściciel treści: ogranicza dostęp do treści według użytkowników.
- Dostęp mieszany: ograniczanie uprawnień do zapisu poszczególnym użytkownikom i jednoczesne zezwalanie na publiczny dostęp z uprawnieniami do odczytu.
- Dostęp na podstawie atrybutu: ogranicza dostęp do grupy lub typu użytkownika.
Testowanie reguł
Jeśli konfigurujesz reguły zabezpieczeń Firebase w konsoli Firebase, możesz szybko sprawdzić ich działanie, korzystając z Playground reguł Firebase. Zalecamy jednak przeprowadzenie bardziej dokładnych testów w Pakietie emulatorów lokalnych przed wdrożeniem zmian w środowisku produkcyjnym.
Wdrażanie reguł
Użyj konsoli Firebase lub interfejsu wiersza poleceń Firebase, aby wdrożyć reguły w środowisku produkcyjnym. Wykonaj czynności opisane w artykule Wdrażanie reguł zabezpieczeń Firebase i zarządzanie nimi.