Cloud Storage İçin Firebase Güvenlik Kurallarını Anlama

Güvenlik, geleneksel olarak uygulama geliştirmenin en karmaşık kısımlarından biri olmuştur. Çoğu uygulamada geliştiricilerin kimlik doğrulamayı (kullanıcı kimliği) ve yetkilendirmeyi (kullanıcı ne yapabilir?) yöneten bir sunucu oluşturup çalıştırması gerekir. Kimlik doğrulama ve yetkilendirmenin ayarlanması zordur, doğru şekilde ayarlanması daha da 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ğrulamayı kolaylaştırmasına benzer şekilde, Cloud Storage için Firebase Security Rules, kullanıcılara yetki vermenizi ve istekleri doğrulamanızı kolaylaştırır. Cloud Storage Security Rules, yola dayalı izinler belirtmenize izin vererek karmaşıklığı sizin için yönetir. Yalnızca birkaç kod satırı kullanarak Cloud Storage isteklerini belirli bir kullanıcıyla kısıtlayan veya yükleme boyutunu sınırlayan yetkilendirme kuralları yazabilirsiniz.

Firebase Realtime Database'te Firebase Realtime Database Security Rules adlı benzer bir özellik vardır.

Doğrulama

Kullanıcılarınızın kim olduğunu bilmek, uygulama oluşturmanın önemli bir parçasıdır. Firebase Authentication, kimlik doğrulama için kullanımı kolay, güvenli ve yalnızca istemci tarafı bir çözüm sunar. Cloud Storage için Firebase Security Rules, kullanıcı tabanlı güvenlik için Firebase Authentication ile bağlantılıdır. Bir kullanıcının kimliği Firebase Authentication ile doğrulandığında, Cloud Storage Security Rules içindeki request.auth değişkeni, kullanıcının benzersiz kimliğini (request.auth.uid) ve jetondaki diğer tüm kullanıcı bilgilerini (request.auth.token) içeren bir nesne olur. Kullanıcının kimliği doğrulanmadığında request.auth, null olur. Bu sayede, veri erişimini kullanıcı bazında güvenli bir şekilde kontrol edebilirsiniz. Daha fazla bilgi için Kimlik doğrulama bölümünü inceleyin.

Yetkilendirme

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

Cloud Storage, sunucularımızda bulunan dosya ve yol başına yetkilendirme kurallarını belirtmenize ve uygulamanızdaki dosyalara erişimi belirlemenize olanak tanır. Örneğin, varsayılan Cloud Storage Security Rules, tüm dosyalarda read veya write işlemlerini gerçekleştirmek için Firebase Authentication gerektirir:

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

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

Veri Doğrulama

Cloud Storage için Firebase Security Rules, dosya adının ve yolunun yanı sıra contentType ve size gibi dosya meta veri özelliklerinin doğrulanması da 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