Zacznij korzystać z reguł zabezpieczeń Firebase

Reguły bezpieczeństwa Firebase zapewniają solidną, w pełni konfigurowalną ochronę Twoich danych w Cloud Firestore, Realtime Database i Cloud Storage. Możesz łatwo rozpocząć korzystanie z Reguł, wykonując czynności opisane w tym przewodniku, zabezpieczając swoje dane i chroniąc aplikację przed złośliwymi użytkownikami.

Zrozumieć język Reguł bezpieczeństwa Firebase

Zanim zaczniesz pisać reguły, warto poświęcić trochę czasu na przejrzenie konkretnego języka Reguł bezpieczeństwa Firebase dla używanych produktów Firebase. Baza danych czasu rzeczywistego wykorzystuje składnię podobną do JavaScript i strukturę JSON dla swoich reguł.

Zacznij od poznania podstawowej składni języka Firebase Security Rules .

Skonfiguruj uwierzytelnianie

Jeśli jeszcze tego nie zrobiłeś, dodaj uwierzytelnianie Firebase do swojej aplikacji . Uwierzytelnianie Firebase obsługuje wiele popularnych metod uwierzytelniania i integruje się z Regułami bezpieczeństwa Firebase, aby zapewnić wszechstronne możliwości weryfikacji.

Możesz skonfigurować dodatkowe, niestandardowe informacje uwierzytelniające dla swojej aplikacji.

Dowiedz się więcej o Regułach bezpieczeństwa Firebase i Uwierzytelnianiu Firebase .

Zdefiniuj swoje struktury danych i reguł

Zdefiniuj dane dla bezpieczeństwa

Sposób, w jaki ustrukturyzujesz swoje dane, może wpłynąć na sposób ustrukturyzowania i wdrożenia reguł. Podczas definiowania struktur danych należy wziąć pod uwagę wpływ, jaki mogą one mieć na strukturę reguł.

Na przykład w Bazie danych czasu rzeczywistego możesz chcieć dołączyć pole, które określa określoną rolę dla każdego użytkownika. Następnie Twoje reguły mogą odczytywać to pole i używać go do przyznawania dostępu opartego na rolach.

Definiując architekturę danych i reguł, pamiętaj o tym, w jaki sposób reguły kaskadują się lub nie kaskadują, w zależności od produktu. W bazie danych czasu rzeczywistego reguły działają od góry do dołu, przy czym płytsze reguły zastępują głębsze reguły. Jeśli reguła przyznaje uprawnienia do odczytu lub zapisu w określonej ścieżce, przyznaje również dostęp do wszystkich węzłów podrzędnych pod nią. W przeciwieństwie do Cloud Firestore i Cloud Storage, reguły obowiązują tylko na określonych poziomach hierarchii danych, a ty piszesz wyraźne reguły, aby kontrolować dostęp do różnych poziomów.

Uzyskaj dostęp do swoich zasad

Aby wyświetlić istniejące reguły, użyj interfejsu wiersza polecenia Firebase lub konsoli Firebase. Upewnij się, że edytujesz swoje reguły przy użyciu tej samej metody, konsekwentnie, aby uniknąć omyłkowego nadpisania aktualizacji. Jeśli nie masz pewności, czy Twoje reguły zdefiniowane lokalnie odzwierciedlają najnowsze aktualizacje, konsola Firebase zawsze pokazuje najnowszą wdrożoną wersję Reguł bezpieczeństwa Firebase.

Aby uzyskać dostęp do swoich reguł z konsoli Firebase , wybierz swój projekt, a następnie w lewym panelu nawigacyjnym kliknij Baza danych czasu rzeczywistego . Kliknij Reguły , gdy znajdziesz się we właściwej bazie danych lub zasobniku pamięci.

Aby uzyskać dostęp do swoich reguł z Firebase CLI, przejdź do pliku reguł zapisanego w pliku firebase.json .

Napisz podstawowe zasady

Tworząc aplikację i zapoznając się z Regułami, spróbuj zaimplementować Reguły, aby rozwiązać kilka podstawowych przypadków użycia , w tym te:

  • Tylko właściciel treści: ogranicz dostęp do treści dla użytkownika.
  • Dostęp mieszany: ogranicz dostęp użytkownika do zapisu, ale zezwól na publiczny dostęp do odczytu.
  • Dostęp oparty na atrybutach: Ogranicz dostęp do grupy lub typu użytkownika.

Przetestuj swoje zasady

Jeśli konfigurujesz reguły bezpieczeństwa Firebase w konsoli Firebase, możesz użyć Firebase Rules Playground , aby szybko zweryfikować zachowanie. Zalecamy jednak dokładniejsze przetestowanie za pomocą pakietu Local Emulator Suite przed wdrożeniem zmian w środowisku produkcyjnym.

Zasady wdrażania

Użyj konsoli Firebase lub Firebase CLI, aby wdrożyć swoje reguły w środowisku produkcyjnym. Wykonaj czynności opisane w artykule Zarządzanie i wdrażanie reguł bezpieczeństwa Firebase .