Reguły zabezpieczeń Firebase zapewniają niezawodną, w pełni konfigurowalną ochronę danych w Cloud Firestore, Realtime Database i Cloud Storage. Możesz łatwo zacząć korzystać z Security Rules, wykonując czynności opisane w tym przewodniku, zabezpieczając dane i chroniąc aplikację przed złośliwymi użytkownikami.
Poznaj język reguł zabezpieczeń Firebase
Zanim zaczniesz pisać reguły, warto zapoznać się z językiem reguł zabezpieczeń Firebase dla usług Firebase, z których korzystasz. Realtime Database korzysta ze składni podobnej do JavaScriptu i struktury JSON w przypadku Security Rules.
Zacznij od poznania podstawowej składni języka reguł zabezpieczeń Firebase.
Skonfiguruj usługę Authentication
Jeśli jeszcze tego nie zrobiono, dodaj Firebase Authentication do aplikacji.Firebase Authentication obsługuje wiele popularnych metod uwierzytelniania i integruje się z regułami bezpieczeństwa Firebase, aby zapewnić kompleksowe możliwości weryfikacji.
Możesz skonfigurować dodatkowe, niestandardowe informacje o uwierzytelnianiu w przypadku swojej aplikacji.
Dowiedz się więcej o regułach zabezpieczeń Firebase i Firebase Authentication.
Określanie struktur danych i reguł
Określanie danych na potrzeby zabezpieczeń
Sposób strukturyzacji danych może wpływać na sposób strukturyzacji i wdrażania reguł. Podczas definiowania struktur danych zastanów się, jaki wpływ mogą one mieć na strukturę Security Rules.
Na przykład w Realtime Database możesz uwzględnić pole, które będzie oznaczać konkretną rolę każdego użytkownika. Następnie reguły mogą odczytywać to pole i używać go do przyznawania dostępu opartego na rolach.
Podczas definiowania architektury danych i reguł pamiętaj, że w zależności od usługi reguły mogą być kaskadowe lub nie. W przypadku Realtime Database reguły działają od góry do dołu, a reguły na wyższych poziomach zastępują reguły na niższych poziomach. Jeśli reguła przyznaje uprawnienia do odczytu lub zapisu w określonej ścieżce, przyznaje też dostęp do wszystkich węzłów podrzędnych. Z kolei w przypadku Cloud Firestore i Cloud Storage reguły są stosowane tylko na określonych poziomach hierarchii danych, a dostęp do różnych poziomów kontroluje się za pomocą wyraźnych reguł.
Dostęp do reguł
Aby wyświetlić istniejące Security Rules, użyj interfejsu wiersza poleceń Firebase lub konsoli Firebase. Aby uniknąć przypadkowego zastąpienia aktualizacji, edytuj reguły zawsze w ten sam sposób. Jeśli nie masz pewności, czy zdefiniowane lokalnie reguły odzwierciedlają najnowsze aktualizacje, w konsoli Firebase zawsze wyświetlana jest ostatnio wdrożona wersja reguł zabezpieczeń Firebase.
Aby uzyskać dostęp do reguł w Firebasekonsoli, wybierz projekt, a następnie w panelu nawigacyjnym po lewej stronie kliknij Baza danych czasu rzeczywistego. Kliknij Security Rules, gdy znajdziesz się w odpowiedniej bazie danych lub zasobniku na dane.
Aby uzyskać dostęp do reguł z poziomu interfejsu Firebase CLI, otwórz plik reguł wskazany w pliku firebase.json.
Tworzenie reguł podstawowych
Podczas tworzenia aplikacji i poznawania Security Rules spróbuj wdrożyć Security Rules, aby rozwiązać kilka podstawowych przypadków użycia, w tym:
- Tylko właściciel treści: ogranicz dostęp do treści według użytkownika.
- Mieszany dostęp: ogranicz dostęp do zapisu dla użytkowników, ale zezwól na publiczny dostęp do odczytu.
- Dostęp oparty na atrybutach: ogranicz dostęp do grupy lub typu użytkownika.
Testowanie reguł
Jeśli konfigurujesz reguły zabezpieczeń Firebase w Firebasekonsoli, możesz użyć Firebase Rules Playground, aby szybko sprawdzić działanie reguł. Zalecamy jednak dokładniejsze przetestowanie Local Emulator Suite przed wdrożeniem zmian w środowisku produkcyjnym.
Reguły wdrażania
Aby wdrożyć reguły w środowisku produkcyjnym, użyj konsoli Firebase lub interfejsu wiersza poleceń Firebase. Wykonaj czynności opisane w artykule Zarządzanie regułami zabezpieczeń Firebase i wdrażanie ich.