Firebase Security Rules
Korzystaj z elastycznych i rozszerzalnych reguł zabezpieczeń Firebase, aby chronić dane w Cloud Firestore, Firebase Realtime Database i Cloud Storage.
Firebase Security Rules chronić Twoje dane przed złośliwymi użytkownikami. Możesz tworzyć proste lub złożone reguły, które chronią dane aplikacji na poziomie szczegółowości wymaganym przez Twoją aplikację.
Firebase Security Rules wykorzystywać rozszerzalne i elastyczne języki konfiguracji, aby określać, do jakich danych użytkownicy mogą mieć dostęp w przypadku Realtime Database, Cloud Firestore i Cloud Storage. Firebase Realtime Database Security Rules wykorzystują JSON w definicjach reguł, a Cloud Firestore Security Rules i Firebase Security Rules w przypadku Cloud Storage korzystają z unikalnego języka stworzonego z myślą o bardziej złożonych strukturach specyficznych dla reguł.
Dowiedz się więcej o konfigurowaniu Rules w przypadku konkretnych usług Firebase, z których korzystasz w aplikacji, oraz o tym, jak Rules działa w różnych usługach Firebase.
Najważniejsze funkcje
| Elastyczność | Twórz reguły niestandardowe, które pasują do struktury i działania Twojej aplikacji. Rules używać języków, które umożliwiają wykorzystywanie własnych danych do autoryzacji dostępu; |
| Szczegółowość | Reguły mogą być tak ogólne lub szczegółowe, jak tego potrzebujesz. |
| Niezależne zabezpieczenia | Ponieważ Rules są zdefiniowane poza aplikacją (w konsoli Firebase lub Firebase CLI), klienci nie odpowiadają za egzekwowanie bezpieczeństwa, błędy nie zagrażają danym, a dane są zawsze chronione. |
Jak to działa?
Firebase Security Rules działają poprzez dopasowywanie wzorca do ścieżek w bazie danych, a następnie stosowanie niestandardowych warunków, aby umożliwić dostęp do danych w tych ścieżkach. Wszystkie Rulesw usługach Firebase mają komponent dopasowywania ścieżki i instrukcję warunkową, która umożliwia dostęp do odczytu lub zapisu. Musisz zdefiniować Rules dla każdej usługi Firebase, której używasz w aplikacji.
W przypadku atrybutów Cloud Firestore i Cloud Storage Rules użyj tej składni:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
W przypadku Realtime Database ustawień opartych na formacie JSON Rules użyj tej składni:
{
"rules": {
"<<path>>": {
// Allow the request if the condition for each method is true.
".read": <<condition>>,
".write": <<condition>>
}
}
}
Rules są stosowane jako instrukcje OR, a nie instrukcje AND.
Jeśli do ścieżki pasuje kilka reguł, a którykolwiek z dopasowanych warunków przyznaje dostęp, Rules przyznaj dostęp do danych w tej ścieżce. Jeśli więc ogólna reguła przyznaje dostęp do danych, nie możesz go ograniczyć za pomocą bardziej szczegółowej reguły. Możesz jednak uniknąć tego problemu, dbając o to, aby Rules nie pokrywały się zbyt mocno. Firebase Security Rules nakładające się flagi w dopasowanych ścieżkach jako ostrzeżenia kompilatora.
Firebase Security Rules może też wykorzystywać Authentication do przyznawania uprawnień na podstawie użytkownika, a ustawiane przez Ciebie warunki mogą być bardzo proste lub niezwykle złożone. Zanim zaczniesz pisać Rules, dowiedz się więcej o Rules języku i zachowaniu.
Ścieżka implementacji
| Integracja pakietów SDK usług | Skonfiguruj Cloud Firestore, Cloud Storage lub Realtime Database w przypadku swojej aplikacji. | |
| Napisz Firebase Security Rules | Dowiedz się więcej o działaniu Rules i skonfiguruj podstawowe Rules. | |
| Testowanie Firebase Security Rules | Użyj emulatorów Realtime Database i Cloud Firestore, aby przetestować działanie aplikacji i sprawdzić reguły, zanim wdrożysz je w środowisku produkcyjnym. | |
| Wdróż Firebase Security Rules | Aby wdrożyć reguły w środowisku produkcyjnym, użyj konsoli Firebase lub interfejsu wiersza poleceń Firebase. |
Dalsze kroki
- Zrozumienie Firebase Security Rulesjęzyka.
- Dowiedz się więcej o tym, jak działają Firebase Security Rules.
- Poznaj częste błędy, których należy unikać.