Firebase Security Rules, Cloud Firestore, Realtime Database ve Cloud Storage'deki verileriniz için güçlü ve tamamen özelleştirilebilir koruma sağlar. Bu kılavuzdaki adımları izleyerek Rules'yı kolayca kullanmaya başlayabilir, verilerinizi güvenceye alabilir ve uygulamanızı kötü amaçlı kullanıcılardan koruyabilirsiniz.
Firebase Security Rules dilini anlama
Kural yazmaya başlamadan önce, kullandığınız Firebase ürünleriyle ilgili Firebase Security Rules dili incelemek için biraz zaman ayırmanız faydalı olur.
Cloud Storage, tanımlanmış bir yolda erişim koşulu belirleyen match
ve allow
ifadelerine dayanan Common Expression Language (CEL) üst kümesini kullanır.
Firebase Security Rules dilinin temel söz dizimini öğrenerek başlayın.
Authentication ayarlarını yapın
Henüz yapmadıysanız Firebase Authentication'yı uygulamanıza ekleyin. Firebase Authentication, kapsamlı doğrulama özellikleri sağlamak için birçok yaygın kimlik doğrulama yöntemini destekler ve Firebase Security Rules ile entegre olur.
Uygulamanız için ek ve ö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 üzerindeki olası etkilerini göz önünde bulundurun.
Örneğin, Cloud Storage içinde her kullanıcı için belirli bir rolü gösteren bir alan eklemek isteyebilirsiniz. Ardından, kurallarınız bu alanı okuyabilir ve rol tabanlı erişim vermek için kullanabilir. Ayrıca Cloud Firestore veritabanı oluşturabilir, erişim ölçütlerini Cloud Firestore dokümanlarında saklayabilir ve bu dokümanlara Cloud Storage Security Rules üzerinden erişebilirsiniz.
Veri ve kural mimarilerinizi tanımlarken kuralların ürününüze bağlı olarak nasıl sıralandığını veya sıralanmadığını göz önünde bulundurun. Realtime Database ile kurallar yukarıdan aşağıya doğru çalışır ve daha sığ kurallar daha derin kuralları geçersiz kılar. Bir kural belirli bir yolda okuma veya yazma izni veriyorsa bu yolun altındaki tüm alt düğümlere de erişim izni verir. Buna karşılık, Cloud Firestore ve Cloud Storage ile kurallar yalnızca veri hiyerarşisinin belirtilen düzeylerinde geçerlidir ve farklı düzeylere erişimi kontrol etmek için açık kurallar yazarsınız.
Kurallarınıza erişme
Mevcut Rules 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öntemle ve tutarlı bir şekilde düzenlediğinizden emin olun. Yerel olarak tanımladığınız kuralların en son güncellemeleri yansıtıp yansıtmadığından emin değilseniz Firebase konsolunda her zaman Firebase Security Rules'nızın en son dağıtılan sürümü gösterilir.
Kurallarınıza Firebase konsolundan erişmek için projenizi seçin, ardından soldaki gezinme panelinde Depolama'yı tıklayın. Doğru veritabanında veya depolama paketinde olduğunuzda Rules simgesini tıklayın.
Kurallarınıza Firebase CLI'dan 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 Rules'ı uygulayarak aşağıdaki gibi birkaç temel kullanım alanını ele alın:
- Yalnızca içerik sahibi: İçeriğe erişimi kullanıcıya göre kısıtlayın.
- Karma erişim: Kullanıcıya göre yazma erişimini kısıtlayın ancak herkese okuma erişimi verin.
- Özellik tabanlı erişim: Bir grup veya kullanıcı türüne erişimi kısıtlayın.
Kurallarınızı test etme
Firebase Security Rules'nızı Firebase konsolunda ayarlıyorsanız davranışı hızlı bir şekilde doğrulamak için Firebase Rules Playground'u kullanabilirsiniz. Ancak değişikliklerinizi üretime dağıtmadan önce Local Emulator Suite ile daha kapsamlı bir 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 belirtilen adımları uygulayın.