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 olanak tanıyarak 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 bulunur.
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
Cloud Storage paketleriniz için kural geliştirmeyi planlamaya başlayın.
Güvenlik kurallarını kullanarak verilerinizin güvenliğini sağlama hakkında daha fazla bilgi edinin.