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

Geleneksel olarak güvenlik, uygulama geliştirmenin en karmaşık kısımlarından biri olmuştur. Çoğu uygulamada, geliştiricilerin kimlik doğrulamayı (kullanıcının kim olduğu) ve yetkilendirmeyi (kullanıcının ne yapabileceğini) yöneten bir sunucu oluşturması ve çalıştırması gerekir. Kimlik doğrulama ve yetkilendirmenin ayarlanması zordur, doğru şekilde yapılması daha zordur ve ürününüzün başarısı açısından kritik öneme sahiptir.

Firebase Authentication'ın kullanıcılarınızın kimliğini doğrulamanızı kolaylaştırmasına benzer şekilde, Firebase Security Rules for Cloud Storage da kullanıcıları yetkilendirmenizi ve istekleri doğrulamanızı kolaylaştırır. Bulut Depolama Güvenlik Kuralları, yola dayalı izinleri belirtmenize olanak tanıyarak karmaşıklığı sizin için yönetir. Yalnızca birkaç satır kodla, Bulut Depolama isteklerini belirli bir kullanıcıyla sınırlayan veya bir yüklemenin 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, uygulama oluşturmanın önemli bir parçasıdır ve Firebase Authentication, kimlik doğrulama için kullanımı kolay, güvenli ve 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ına bağlanı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 ( request.auth.token ) diğer tüm kullanıcı bilgilerini 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 etmenize olanak tanır. 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 Bulut Depolama'daki dosyalara erişimlerini kontrol etmenin bir yoluna ihtiyacınız vardır.

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 Bulut Depolama Güvenlik Kuralları, tüm dosyalarda herhangi bir read veya write işleminin gerçekleştirilebilmesi 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ı 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