Geleneksel olarak güvenlik, uygulama geliştirmenin en karmaşık kısımlarından biri olmuştur. Çoğu uygulamada geliştiriciler, kimlik doğrulama (kullanıcının kim olduğu) ve yetkilendirme (kullanıcının ne yapabileceği) işlemlerini gerçekleştiren bir sunucu oluşturup çalıştırmalıdır. Kimlik doğrulama ve yetkilendirme ayarlarının yapılması zordur, doğru şekilde yapılması daha da zordur ve ürününüzün başarısı için kritik öneme sahiptir.
Firebase Authentication, kullanıcılarınızın kimliğini doğrulamanızı kolaylaştırdığı gibi Firebase Security Rules for Cloud Storage de kullanıcıları yetkilendirmenizi ve istekleri doğrulamanızı kolaylaştırır. Cloud Storage Security Rules yol tabanlı izinler belirlemenize olanak tanıyarak karmaşıklığı sizin için yönetir. Yalnızca birkaç satır kodla, Cloud Storage isteklerini belirli bir kullanıcıyla sınırlayan veya yükleme boyutunu sınırlayan yetkilendirme kuralları yazabilirsiniz.
Firebase Realtime Database, Firebase Realtime Database Security Rules adlı benzer bir özelliğe sahiptir.
Doğrulama
Kullanıcılarınızın kim olduğunu bilmek uygulama geliştirmenin ö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 çalışan bir çözüm sunar. Firebase Security Rules için Cloud Storage, Firebase Authentication
ile kullanıcı tabanlı güvenlik için bağlantılıdır. Bir kullanıcı Firebase Authentication ile kimlik doğruladığı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 haline gelir. Kullanıcının kimliği doğrulanmadığında request.auth
, null
olur. Bu sayede, kullanıcı başına veri erişimini güvenli bir şekilde kontrol edebilirsiniz. Daha fazla bilgiyi Kimlik doğrulama bölümünde bulabilirsiniz.
Yetkilendirme
Kullanıcınızı tanımlamak, güvenliğin yalnızca bir parçasıdır. Bu kişilerin kim olduğunu öğrendikten sonra, Cloud Storage içindeki dosyalara erişimlerini kontrol etmeniz gerekir.
Cloud Storage, sunucularımızda bulunan ve uygulamanızdaki dosyalara erişimi belirleyen dosya ve yol bazında yetkilendirme kuralları belirtmenize olanak tanır.
Örneğin, tüm dosyalarda herhangi bir read
veya write
işlemi gerçekleştirmek için varsayılan Cloud Storage Security Rules Firebase Authentication gerektirir:
service firebase.storage { match /b/{bucket}/o { match /someFolder/{fileName} { allow read, write: if request.auth != null; } } }
Bu kuralları, Firebase konsolunda bir Firebase uygulaması seçip Storage bölümünün Rules
sekmesini görüntüleyerek düzenleyebilirsiniz.
Veri Doğrulama
Firebase Security Rules Cloud Storage için, dosya adı ve yolunun yanı sıra contentType
ve size
gibi dosya meta veri özelliklerinin doğrulanması da dahil olmak üzere veri doğrulaması 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
Başlayın ve Cloud Storage gruplarınız için kural geliştirme planlayın.
Güvenlik kurallarını kullanarak verilerinizin güvenliğini sağlama hakkında daha fazla bilgi edinin.