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.
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 dilinin temel söz dizimini öğrenmeye başlayın.
Authentication ayarlarını yapın
Henüz yapmadıysanız Firebase Authentication'ı uygulamanıza ekleyin. 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 Storage 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. Ayrıca bir Cloud Firestore veritabanı oluşturabilir, erişim ölçütlerini Cloud Firestore dokümanlarına kaydedebilir ve ardından bu dokümanlara Cloud Storage Security Rules'dan erişebilirsiniz.
Veri ve kural yapılarınızı tanımlarken, ürününüze bağlı olarak kuralların basamaklandırılıp basamaklandırılmadığını göz önünde bulundurun. Realtime Database ile kurallar yukarıdan aşağıya doğru çalışır ve daha ayrıntılı olmayan kurallar daha ayrıntılı olanları geçersiz kılar. Bir kural belirli bir yolda okuma veya yazma izni veriyorsa bu kural, altındaki tüm alt düğümlere de erişim izni verir. Buna karşılık, Cloud Firestore ve Cloud Storage'te 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'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.
Kurallarınıza Firebase konsolundan erişmek için projenizi seçin, ardından sol gezinme panelinde Depolama'yı tıklayın. Doğru veritabanında veya depolama alanında olduğunuzda Rules simgesini 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ğıdakiler de dahil olmak üzere birkaç temel kullanım alanını ele almak için Rules'ü 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
Firebase Security Rules'ünüzü Firebase konsolunda kuruyorsanız davranışı hızlı bir şekilde doğrulamak için Firebase Rules Playground'ı kullanabilirsiniz. Ancak değişikliklerinizi üretime dağıtmadan önce Local Emulator Suite ile daha kapsamlı 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.