Firebase Security Rules
Cloud Firestore, Firebase Realtime Database ve Cloud Storage'deki verilerinizi korumak için esnek ve genişletilebilir Firebase Güvenlik Kurallarımızı kullanın.
Firebase Security Rules, verileriniz ile kötü niyetli kullanıcılar arasında durur. Uygulamanızın verilerini, uygulamanızın gerektirdiği ayrıntı düzeyinde koruyan basit veya karmaşık kurallar yazabilirsiniz.
Firebase Security Rules, kullanıcılarınızın Realtime Database, Cloud Firestore ve Cloud Storage için hangi verilere erişebileceğini tanımlamak üzere genişletilebilir ve esnek yapılandırma dillerinden yararlanır. Firebase Realtime Database Security Rules kural tanımlarında JSON'dan yararlanırken Cloud Firestore Security Rules ve Firebase Security Rules için Cloud Storage, daha karmaşık kurala özgü yapıları barındırmak üzere oluşturulmuş benzersiz bir dilden yararlanır.
Uygulamanızda kullandığınız belirli Firebase ürünleri için Rules nasıl ayarlanacağı ve Rules davranışının Firebase ürünleri arasında nasıl farklılık gösterdiği hakkında daha fazla bilgi edinin.
Temel özellikler
| Esneklik | Uygulamanızın yapısı ve davranışı için anlamlı özel kurallar yazın. Rules erişimi yetkilendirmek için kendi verilerinizden yararlanmanıza olanak tanıyan dilleri kullanın. |
| Ayrıntı düzeyi | Kurallarınız istediğiniz kadar geniş veya dar kapsamlı olabilir. |
| Bağımsız güvenlik | Rules, uygulamanızın dışında (Firebase konsolunda veya Firebase CLI'da) tanımlandığı için istemciler güvenliği zorunlu kılmaktan sorumlu değildir, hatalar verileri tehlikeye atmaz ve verileriniz her zaman korunur. |
İşleyiş şekli nasıldır?
Firebase Security Rules, bir kalıbı veritabanı yollarıyla eşleştirerek ve ardından bu yollardaki verilere erişime izin vermek için özel koşullar uygulayarak çalışır. Tüm Rules Firebase ürünlerinde, okuma veya yazma erişimine izin veren bir yol eşleştirme bileşeni ve koşullu bir ifade bulunur. Uygulamanızda kullandığınız her Firebase ürünü için Rules tanımlamanız gerekir.
Cloud Firestore ve Cloud Storage için Rules şu söz dizimini kullanın:
service <<name>> {
// Match the resource path.
match <<path>> {
// Allow the request if the following conditions are true.
allow <<methods>> : if <<condition>>
}
}
Realtime Database için JSON tabanlı Rules aşağıdaki sözdizimini kullanın:
{
"rules": {
"<<path>>": {
// Allow the request if the condition for each method is true.
".read": <<condition>>,
".write": <<condition>>
}
}
}
Rules, AND ifadeleri olarak değil, OR ifadeleri olarak uygulanır.
Sonuç olarak, bir yolla eşleşen birden fazla kural varsa ve eşleşen koşullardan herhangi biri erişim izni veriyorsa Rules bu yoldaki verilere erişim izni verilir. Bu nedenle, geniş kapsamlı bir kural verilere erişim izni veriyorsa daha spesifik bir kural kullanarak erişimi kısıtlayamazsınız. Ancak Rules öğelerinizin çok fazla çakışmadığından emin olarak bu sorunu önleyebilirsiniz. Firebase Security Rules eşleşen yollarınızdaki çakışmaları derleyici uyarıları olarak işaretler.
Firebase Security Rules, kullanıcı tabanlı izinler vermek için Authentication'den de yararlanabilir. Belirlediğiniz koşullar çok basit veya inanılmaz derecede karmaşık olabilir. Rules yazmaya başlamadan önce Rules dil ve davranış hakkında daha fazla bilgi edinin.
Uygulama yolu
| Ürün SDK'larını entegre edin | Uygulamanız için Cloud Firestore, Cloud Storage veya Realtime Database'ı ayarlayın. | |
| Firebase Security Rules yazın | Rules işleyiş şekli ve bazı temel Rules ayarlarını yapma hakkında daha fazla bilgi edinin. | |
| Firebase Security Rules test etme | Uygulamanızın davranışını test etmek ve kurallarınızı üretime dağıtmadan önce doğrulamak için Realtime Database ve Cloud Firestore emülatörlerini kullanın. | |
| Firebase Security Rules dağıtın | Kurallarınızı üretime dağıtmak için Firebase konsolunu veya Firebase KSA'yı kullanın. |
Sonraki adımlar
- Firebase Security Rules dilini anlama
- Firebase Security Rules işleyiş şekli hakkında daha fazla bilgi edinin.
- Kaçınmanız gereken yaygın hataları inceleyin.