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

Geleneksel olarak güvenlik, uygulama geliştirmenin en karmaşık bölümlerinden 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ı zor, doğru yapılması daha zordur ve ürününüzün başarısı için kritik önem taşır.

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. Sadece birkaç satır kod kullanarak Cloud Storage isteklerini belirli bir kullanıcıyla kısıtlayan veya yüklemenin boyutunu sınırlayan yetkilendirme kuralları yazabilirsiniz.

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

Doğrulama

Kullanıcılarınızın kim olduğunu bilmek, uygulama geliştirmenin önemli bir parçasıdır. Firebase Authentication; kimlik doğrulama için kullanımı kolay, güvenli, yalnızca istemci taraflı 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. Bu kullanıcının kim olduğunu öğrendikten sonra, Cloud Storage ürününde dosyalara erişimini kontrol etmenin bir yolunu bulmanız 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