Firebase Güvenlik Kuralları

Cloud Firestore, Firebase Realtime Database ve Cloud Storage'daki verilerinizin güvenliğini sağlamak için esnek, genişletilebilir Firebase Güvenlik Kurallarımızı kullanın.

Firebase Güvenlik Kuralları, 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 Güvenlik Kuralları, kullanıcılarınızın Gerçek Zamanlı Veritabanı, Cloud Firestore ve Cloud Storage için hangi verilere erişebileceğini tanımlamak üzere genişletilebilir, esnek yapılandırma dillerinden yararlanır. Firebase Gerçek Zamanlı Veritabanı Güvenliği Kuralları, kural tanımlarında JSON'dan yararlanırken, Cloud Firestore Güvenlik Kuralları ve Cloud Storage için Firebase Güvenlik Kuralları, daha karmaşık kurallara özgü yapıları barındıracak şekilde oluşturulmuş benzersiz bir dilden yararlanır.

Uygulamanızda kullandığınız belirli Firebase ürünleri için Kuralları nasıl ayarlayacağınız ve Kural davranışının Firebase ürünleri arasında nasıl farklılık gösterdiği hakkında daha fazla bilgi edinin.

Temel yetenekler

Esneklik Uygulamanızın yapısına ve davranışına uygun özel kurallar yazın. Kurallar, erişimi yetkilendirmek için kendi verilerinizden yararlanmanıza olanak tanıyan diller kullanır.
Parçalılık Kurallarınız ihtiyacınız kadar geniş veya dar olabilir.
Bağımsız güvenlik Kurallar uygulamanızın dışında (Firebase konsolunda veya Firebase CLI'de) tanımlandığından, istemciler güvenliği uygulamaktan sorumlu değildir, hatalar verileri tehlikeye atmaz ve verileriniz her zaman korunur.

Nasıl çalışıyorlar?

Firebase Güvenlik Kuralları, bir modeli veritabanı yollarıyla eşleştirerek ve ardından bu yollardaki verilere erişime izin vermek için özel koşullar uygulayarak çalışır. Firebase ürünlerindeki tüm Kurallar, bir yol eşleştirme bileşenine ve okuma veya yazma erişimine izin veren bir koşullu ifadeye sahiptir. Uygulamanızda kullandığınız her Firebase ürünü için Kurallar tanımlamanız gerekir.

Cloud Firestore ve Cloud Storage için Kurallar aşağıdaki sözdizimini kullanır:

service <<name>> {
  // Match the resource path.
  match <<path>> {
    // Allow the request if the following conditions are true.
    allow <<methods>> : if <<condition>>
  }
}

Gerçek Zamanlı Veritabanı için JSON tabanlı Kurallar aşağıdaki sözdizimini kullanır:

{
  "rules": {
    "<<path>>": {
    // Allow the request if the condition for each method is true.
      ".read": <<condition>>,
      ".write": <<condition>>
    }
  }
}

Kurallar OR ifadeleri olarak değil, AND ifadeleri olarak uygulanır. Sonuç olarak, bir yolla birden fazla kural eşleşirse ve eşleşen koşullardan herhangi biri erişim izni verirse, Kurallar o yoldaki verilere erişim izni verir. Bu nedenle, geniş bir kural verilere erişim izni veriyorsa daha spesifik bir kuralla kısıtlama yapamazsınız. Ancak Kurallarınızın çok fazla çakışmamasını sağlayarak bu sorunu önleyebilirsiniz. Firebase Güvenlik Kuralları, eşleşen yollarınızdaki çakışmaları derleyici uyarıları olarak işaretler.

Firebase Güvenlik Kuralları, kullanıcı tabanlı izinler vermek için Kimlik Doğrulamadan da yararlanabilir ve ayarladığınız koşullar çok basit veya inanılmaz derecede karmaşık olabilir. Kuralları yazmaya başlamadan önce Kuralların dili 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'i kurun.
Firebase Güvenlik Kurallarınızı yazın Kuralların nasıl çalıştığı hakkında daha fazla bilgi edinin ve bazı temel Kuralları ayarlayın
Firebase Güvenlik Kurallarınızı test edin 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 Güvenlik Kurallarınızı dağıtın Kurallarınızı üretime dağıtmak için Firebase konsolunu veya Firebase CLI'yi kullanın.

Sonraki adımlar