Catch up on highlights from Firebase at Google I/O 2023. Learn more

Bulut Depolama için Firebase Güvenlik Kurallarını Anlayın

Geleneksel olarak güvenlik, uygulama geliştirmenin en karmaşık bölümlerinden biri olmuştur. Çoğu uygulamada geliştiriciler, kimlik doğrulama (kullanıcının kim olduğu) ve yetkilendirmeyi (kullanıcının yapabilecekleri) işleyen bir sunucu oluşturmalı ve çalıştırmalıdır. Kimlik doğrulama ve yetkilendirmenin kurulumu zor, doğru olması daha zordur ve ürününüzün başarısı için kritik öneme sahiptir.

Firebase Authentication'ın kullanıcılarınızın kimliğini doğrulamanızı nasıl kolaylaştırdığına benzer şekilde, Cloud Storage için Firebase Güvenlik Kuralları da kullanıcıları yetkilendirmenizi ve istekleri doğrulamanızı kolaylaştırır. Bulut Depolama Güvenlik Kuralları, yola dayalı izinler belirlemenize izin vererek karmaşıklığı sizin yerinize yönetir. Yalnızca birkaç satırlık bir kodla, Bulut Depolama isteklerini belirli bir kullanıcıyla sınırlayan veya yükleme boyutunu sınırlayan yetkilendirme kuralları yazabilirsiniz.

Firebase Gerçek Zamanlı Veritabanı, Firebase Gerçek Zamanlı Veritabanı Güvenlik Kuralları adı verilen benzer bir özelliğe sahiptir.

kimlik doğrulama

Kullanıcılarınızın kim olduğunu bilmek, bir uygulama oluşturmanın önemli bir parçasıdır ve Firebase Authentication, kimlik doğrulama için kullanımı kolay, güvenli, yalnızca istemci tarafında bir çözüm sağlar. Bulut Depolama için Firebase Güvenlik Kuralları, kullanıcı tabanlı güvenlik için Firebase Kimlik Doğrulaması ile bağlantılıdır. Bir kullanıcının kimliği Firebase Kimlik Doğrulaması ile doğrulandığında, Cloud Storage Güvenlik Kurallarındaki request.auth değişkeni, kullanıcının benzersiz kimliğini ( request.auth.uid ) ve belirteçteki diğer tüm kullanıcı bilgilerini ( request.auth.token ) içeren bir nesne haline gelir. . Kullanıcının kimliği doğrulanmadığında request.auth null olur. Bu, veri erişimini kullanıcı bazında güvenli bir şekilde kontrol etmenizi sağlar. Kimlik Doğrulama bölümünde daha fazla bilgi edinebilirsiniz.

yetki

Kullanıcınızı tanımlamak, güvenliğin yalnızca bir parçasıdır. Kim olduklarını öğrendikten sonra, Cloud Storage'daki dosyalara erişimlerini kontrol etmenin bir yolunu bulmanız gerekir.

Bulut Depolama, sunucularımızda yaşayan dosya başına ve yol başına yetkilendirme kuralları belirtmenize ve uygulamanızdaki dosyalara erişimi belirlemenize olanak tanır. Örneğin, varsayılan Bulut Depolama Güvenlik Kuralları, tüm dosyalarda herhangi bir read veya write işlemi gerçekleştirmek için Firebase Kimlik Doğrulaması gerektirir:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Firebase konsolunda bir Firebase uygulaması seçip Depolama bölümünün Rules sekmesini görüntüleyerek bu kuralları düzenleyebilirsiniz.

Veri doğrulama

Cloud Storage için Firebase Güvenlik Kuralları, dosya adının ve yolunun yanı sıra contentType ve size gibi dosya meta veri özelliklerinin doğrulanması dahil olmak üzere veri doğrulama için de kullanılabilir.

service firebase.storage {
  match /b/{bucket}/o {
    match /images/{imageId} {
      // Only allow uploads of any image file that's less than 5MB
      allow write: if request.resource.size < 5 * 1024 * 1024
                   && request.resource.contentType.matches('image/.*');
    }
  }
}

Sonraki adımlar