Pierwsze kroki z regułami zabezpieczeń Firebase

Firebase Security Rules zapewniają solidną, w pełni konfigurowalną ochronę danych w Cloud Firestore, Realtime DatabaseCloud Storage. Aby zacząć korzystać z Rules, wystarczy wykonać czynności opisane w tym przewodniku. Dzięki temu zabezpieczysz swoje dane i aplikację przed złośliwymi użytkownikami.

zrozumieć język Firebase Security Rules,

Zanim zaczniesz pisać reguły, warto poświęcić trochę czasu na zapoznanie się z językiem Firebase Security Rules używanym w usługach Firebase, z których korzystasz. Cloud Storage korzysta z superzestawu języka Common Expression Language (CEL), który opiera się na instrukcjach match i allow, które określają warunek dostępu na określonej ścieżce.

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

Skonfiguruj usługę Authentication

Jeśli jeszcze tego nie zrobiono, dodaj do aplikacji Firebase Authentication. Firebase Authentication obsługuje wiele popularnych metod uwierzytelniania i integruje się z Firebase Security Rules, co zapewnia kompleksowe możliwości weryfikacji.

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

Dowiedz się więcej o Firebase Security RulesFirebase Authentication.

Definiowanie struktur danych i reguł

Sposób uporządkowania danych może wpływać na sposób uporządkowania i wdrażania reguł. Podczas definiowania struktur danych zastanów się, jakie mogą mieć one konsekwencje dla struktury Rules.

Na przykład w Cloud Storage możesz uwzględnić pole, które oznacza konkretną rolę dla każdego użytkownika. Następnie reguły mogą odczytać to pole i użyć go do przyznania dostępu na podstawie roli. Możesz też utworzyć bazę danych Cloud Firestore, przechowywać kryteria dostępu w dokumentach Cloud Firestore, a następnie uzyskiwać dostęp do tych dokumentów z poziomu Cloud Storage Security Rules.

Podczas definiowania architektury danych i reguł pamiętaj o tym, że reguły mogą być stosowane kaskadowo lub nie, w zależności od usługi. W przypadku Realtime Database reguły działają od góry do dołu, a reguły z poziomu wyższego poziomu zastępują reguły z poziomu niższego. Jeśli reguła przyznaje uprawnienia do odczytu lub zapisu na określonej ścieżce, przyznaje też dostęp do wszystkich podrzędnych węzłów poniżej. Z kolei w przypadku zasad Cloud FirestoreCloud Storage reguły są stosowane tylko na określonych poziomach hierarchii danych, a Ty piszesz wyraźne reguły, aby kontrolować dostęp do poszczególnych poziomów.

Dostęp do reguł

Aby wyświetlić istniejące Rules, użyj interfejsu wiersza poleceń Firebase lub konsoli Firebase. Aby uniknąć przypadkowego zastąpienia aktualizacji, edytuj reguły, używając tej samej metody. Jeśli nie masz pewności, czy zdefiniowane lokalnie reguły odzwierciedlają najnowsze zmiany, konsola Firebase zawsze pokazuje najnowszą wersję Firebase Security Rules.

Aby uzyskać dostęp do reguł w konsoli Firebase, wybierz swój projekt, a następnie w panelu nawigacyjnym po lewej stronie kliknij Przechowywanie danych. Gdy znajdziesz się w prawidłowej bazie danych lub zasobniku na dane, kliknij Rules.

Aby uzyskać dostęp do reguł z poziomu wiersza poleceń Firebase, otwórz plik reguł podany w pliku firebase.json.

Pisanie podstawowych reguł

Podczas tworzenia aplikacji i poznawania Rules spróbuj zaimplementować Rules, aby uwzględnić kilka podstawowych przypadków użycia, takich jak:

  • Tylko właściciele treści: ograniczaj dostęp do treści przez użytkownika.
  • Dostęp mieszany: ogranicz dostęp do zapisu przez użytkownika, ale zezwól na publiczny dostęp do odczytu.
  • Dostęp na podstawie atrybutów: ogranicz dostęp do grupy lub typu użytkownika.

Testowanie reguł

Jeśli konfigurujesz Firebase Security Rules w konsoli Firebase, możesz użyć sceny reguł Firebase, aby szybko sprawdzić zachowanie. Zalecamy jednak dokładniejsze przetestowanie Local Emulator Suite przed wdrożeniem zmian w wersji produkcyjnej.

Wdrażanie reguł

Aby wdrożyć reguły w produkcji, użyj konsoli Firebase lub interfejsu wiersza poleceń Firebase. Wykonaj czynności opisane w artykule Zarządzanie i wdrażanie Firebase Security Rules.