Firebase Security Rules, Cloud Firestore, Realtime Database ve Cloud Storage'daki verileriniz için güçlü ve tamamen özelleştirilebilir koruma sağlar. Bu kılavuzdaki adımları uygulayarak Rules'ü kolayca kullanmaya başlayabilir, verilerinizi güvence altına alabilir ve uygulamanızı kötü amaçlı kullanıcılara karşı koruyabilirsiniz.
Firebase Security Rules dilini anlama
Kural yazmaya başlamadan önce, kullandığınız Firebase ürünlerine özel Firebase Security Rules dilini incelemek için biraz zaman ayırmanız faydalı olacaktır.
Realtime Database, Rules için JavaScript benzeri bir söz diziminden ve JSON yapısından yararlanır. Alternatif olarak Cloud Firestore ve Cloud Storage, tanımlanmış bir yolda erişim koşulu belirleyen match
ve allow
ifadelerine dayanan Common Expression Language (CEL) süper kümesinden yararlanır.
Firebase Security Rules dili hakkında daha fazla bilgi edinin.
Authentication ayarlarını yapın
Henüz yapmadıysanız kullanıcılarınızı Firebase Authentication ile tanımlayın. Firebase Authentication, yaygın olarak kullanılan birçok kimlik doğrulama yöntemini destekler ve kapsamlı doğrulama özellikleri sunmak için Firebase Security Rules ile entegre olur.
Uygulamanız için ek, özel kimlik doğrulama bilgileri ayarlayabilirsiniz.
Firebase Security Rules ve Firebase Authentication hakkında daha fazla bilgi edinin.
Veri ve kural yapılarınızı tanımlama
Verilerinizi yapılandırma şekliniz, kurallarınızı yapılandırma ve uygulama şeklinizi etkileyebilir. Veri yapılarınızı tanımlarken Rules yapınızın bu durumdan nasıl etkilenebileceğini göz önünde bulundurun.
Örneğin, Cloud Firestore alanına her kullanıcı için belirli bir rolü belirten bir alan ekleyebilirsiniz. Ardından, kurallarınız bu alanı okuyabilir ve rol tabanlı erişim vermek için kullanabilir.
Veri ve kural yapılarınızı tanımlarken, herhangi bir kural bir veri kümesine erişim izni veriyorsa Firebase Security Rules'in de bu veri kümesine erişim izni verdiğini unutmayın. Başka bir deyişle, veri hiyerarşinizde daha üst bir düzeyde erişim izni verdiyseniz alt yolda erişimi hassaslaştıramazsınız.
Kurallarınıza erişme
Mevcut Rules'inizi görüntülemek için Firebase KSA'yı veya Firebase konsolunu kullanın. Güncellemelerin yanlışlıkla üzerine yazılmasını önlemek için kurallarınızı aynı yöntemi kullanarak tutarlı bir şekilde düzenlediğinizden emin olun. Yerel olarak tanımlanan kurallarınızın en son güncellemeleri yansıtıp yansıtmadığından emin değilseniz Firebase konsolu her zaman Firebase Security Rules'ün en son dağıtılan sürümünü gösterir.
Firebase konsolundan kurallarınıza erişmek için projenizi seçin, ardından Realtime Database, Cloud Firestore veya Storage'a gidin. Doğru veritabanına veya depolama alanına ulaştıktan sonra Kurallar'ı tıklayın.
Kurallarınıza Firebase CLI'den erişmek için firebase.json dosyanızda belirtilen kurallar dosyasına gidin.
Temel kurallar yazma
Uygulamanızı geliştirirken ve Rules'ü anlamaya çalışırken aşağıdaki kullanım alanları da dahil olmak üzere birkaç temel güvenlik kuralı uygulamayı deneyin:
- Yalnızca içerik sahibi: Kullanıcının içeriğe erişimini kısıtlayın.
- Karma erişim: Kullanıcıya yazma erişimini kısıtlayın ancak herkese açık okuma erişimine izin verin.
- Özellik tabanlı erişim: Bir gruba veya kullanıcı türüne erişimi kısıtlayın.
Kurallarınızı test etme
Uygulamanızın davranışını tamamen doğrulamak ve Firebase Security Rules
konfigürasyonlarınızı doğrulamak için yerel bir ortamda birim testlerini çalıştırmak ve otomatikleştirmek üzere Firebase Emulator'ı kullanın.
Firebase Security Rules'nizi Firebase konsolunda ayarlıyorsanız davranışı hızlıca doğrulamak için Firebase Kural Simülasyon Aracı'nı kullanabilirsiniz. Ancak, değişikliklerinizi üretime dağıtmadan önce Firebase Emulator ile daha ayrıntılı test yapmanızı öneririz.
Kuralları dağıtma
Kurallarınızı üretime dağıtmak için Firebase konsolunu veya Firebase KSA'yı kullanın. Firebase Security Rules'ı yönetme ve dağıtma başlıklı makalede açıklanan adımları uygulayın.