Firebase Güvenlik Kuralları, Firestore, Gerçek Zamanlı Veritabanı ve Bulut Depolama [S1]'deki verileri korumak için ayrıntılı, sunucu tarafından zorlanan bir mekanizma sağlar. Firebase uygulamaları genellikle bu bulut hizmetleriyle doğrudan istemci tarafından etkileşime girdiğinden, bu kurallar, [S1] arka uç verilerine yetkisiz erişimi önleyen tek engeli temsil eder.
İzin Veren Kuralların Etkisi
Yanlış yapılandırılmış kurallar, önemli miktarda verinin açığa çıkmasına neden olabilir [S2]. Kurallar aşırı izin verecek şekilde ayarlanmışsa (örneğin, genel erişime izin veren varsayılan 'test modu' ayarları kullanılarak), proje kimliği bilgisine sahip herhangi bir kullanıcı [S2] veritabanı içeriğinin tamamını okuyabilir, değiştirebilir veya silebilir. Bu, tüm istemci tarafı güvenlik önlemlerini atlar ve hassas kullanıcı bilgilerinin kaybına veya hizmetin tamamen kesintiye uğramasına neden olabilir. [S2].
Temel Neden: Yetersiz Yetkilendirme Mantığı
Bu güvenlik açıklarının temel nedeni genellikle kullanıcı kimliğine veya [S3] kaynak özniteliklerine dayalı olarak erişimi kısıtlayan belirli koşulların uygulanmamasıdır. Geliştiriciler, request.auth nesnesi [S3]'yi doğrulamayan üretim ortamlarında sıklıkla varsayılan yapılandırmaları etkin bırakır. request.auth değerlendirilmeden sistem, meşru kimliği doğrulanmış kullanıcı ile anonim istek sahibi [S3] arasında ayrım yapamaz.
Teknik İyileştirme
Firebase ortamının güvenliğini sağlamak, açık erişimden en az ayrıcalık ilkesi modeline geçmeyi gerektirir.
- Kimlik Doğrulamayı Zorunlu Tutun:
request.authnesnesinin boş [S3] olup olmadığını kontrol ederek tüm hassas yolların geçerli bir kullanıcı oturumu gerektirdiğinden emin olun. - Kimlik Tabanlı Erişimi Uygulayın: Kullanıcıların yalnızca kendi verilerine [S3] erişebilmelerini sağlamak için kullanıcının UID'sini (
request.auth.uid) belge içindeki bir alanla veya belge kimliğinin kendisiyle karşılaştıran kuralları yapılandırın. - Ayrıntılı İzin Kapsamı: Koleksiyonlar için genel joker karakterlerden kaçının. Bunun yerine, potansiyel saldırı yüzeyini [S2] en aza indirmek için her koleksiyon ve alt koleksiyon için belirli kurallar tanımlayın.
- Emulator Suite aracılığıyla Doğrulama: Güvenlik kurallarını yerel olarak test etmek için Firebase Emulator Suite'i kullanın. Bu, [S2] canlı ortamına dağıtılmadan önce erişim kontrolü mantığının çeşitli kullanıcı kişilerine göre doğrulanmasına olanak tanır.
FixVibe bunu nasıl test ediyor?
FixVibe artık bunu salt okunur bir BaaS taraması olarak içeriyor. baas.firebase-rules, modern initializeApp(...) paket şekilleri de dahil olmak üzere aynı kaynaklı JavaScript paketlerinden Firebase yapılandırmasını çıkarır, ardından kimliği doğrulanmamış salt okunur isteklerle Gerçek Zamanlı Veritabanını, Firestore'u ve Firebase Depolamayı kontrol eder. Firestore için öncelikle kök koleksiyon listesini dener; listeleme engellendiğinde ayrıca users, accounts, customers, orders, payments, messages gibi yaygın hassas koleksiyon adlarını da araştırır. admin ve settings. Yalnızca başarılı anonim okumaları veya listelemeleri rapor eder ve müşteri belgesi içeriklerini yazmaz, silmez veya saklamaz.
