Firebase kaynaklarınızı ve kullanıcılarınızın aşağıdaki adımları izleyin, aykırıdır. Her öğe gereksinimleriniz için geçerli olmayabilir ancak dikkate almanız gerekir.
Kötüye kullanım amaçlı trafikten kaçının
Arka uç hizmetleri için izleme ve uyarı ayarlama
Hizmet reddi (DOS) saldırıları gibi kötüye kullanım amaçlı trafiği tespit etmek için Cloud Firestore için izleme ve uyarı Realtime Database, Cloud Storage ve Hosting
Uygulamanıza bir saldırı olduğundan şüpheleniyorsanız Destek ekibiyle iletişime geçin. onlara ne olduğunu anlatın.
App Check özelliğini etkinleştir
Yalnızca uygulamalarınızın arka uç hizmetlerinize erişebilmesi için şunları etkinleştirin: Destekleyen her hizmet için Firebase App Check.
Cloud Functions cihazınızı normal trafiğe göre ölçeklendirilecek şekilde yapılandırın
Cloud Functions, uygulamanızın ihtiyaçlarını karşılamak için otomatik olarak ölçeklendirme yapar ancak bu durum büyük bir fatura anlamına gelebilir. Bunu önlemek için: eş zamanlı örnek sayısını sınırlama bir işlevin normal trafiği temel alınır.
Sınırlara neredeyse ulaşıldığında bildirim almak için uyarıları ayarlayın
Hizmetinizde ani artışlar olursa kotalar genellikle devreye girer ve otomatik olarak uygulamanıza gelen trafiği kısıtlayın. Web sitenizin Kullanım ve faturalandırma kontrol paneli, ama kampanyalarınızı bütçe uyarıları ayarlayın nasıl bilgilendirileceğini belirlemek için projenize eklemeniz gerekir.
Kendi kendine DO'ları önleyin: İşlevleri emülatörlerle yerel olarak test edin
Geliştirme sırasında istemeden kendi başınıza bir şeyler yapmanız çok kolay olabilir. Cloud Functions: örneğin, sonsuz bir tetikleyici-yazma döngüsü oluşturarak. Aşağıdaki adımları uygulayarak bu hataların canlı hizmetleri etkilemesini önleyebilirsiniz: Firebase Local Emulator Suite ile geliştirmeyi öğreneceksiniz.
Yanlışlıkla kendiniz DOS işlemi yaparsanız, işlevinizi silerek dağıtımını kaldırın
index.js
arasında, ardından çalışıyor
firebase deploy --only functions
Gerçek zamanlı yanıt vermenin daha az önemli olduğu yerlerde, işlevleri savunmaya dayalı bir şekilde yapılandırın
Bir fonksiyonun sonucunu gerçek zamanlı olarak sunmanız gerekmiyorsa, istediğiniz sonuçları sonuçları toplu olarak işleyerek kötüye kullanım amaçlı trafiğe karşı azaltma: yayınlama sonuçları Pub/Sub ve sonuçları düzenli aralıklarla işleyerek planlanmış işlev.
API anahtarlarını anlama
Firebase hizmetleri için API anahtarları gizli değildir
Firebase, yalnızca uygulamanızın Firebase projesini Firebase'e tanımlamak için API anahtarlarını kullanır ve Cloud Storage verilerine yönelik erişimi kontrol etmemek kaydıyla Firebase Security Rules kullanılarak gerçekleştirildi. Bu nedenle, Google Ads hesabınızdaki Firebase hizmetlerinin API anahtarlarını gizli olarak işleyebilir ve bunları güvenli bir şekilde yerleştirebilirsiniz girmelisiniz. Daha fazla bilgi: Firebase için API anahtarları.
API anahtarı kısıtlamalarını ayarlama
Aşağıdaki işlemler için API anahtarınızı kullanmaya çalışan saldırganlara karşı ek bir önlem olarak: e-posta göndererek API anahtarı kısıtlamaları uygulama istemcilerinizin ve kullandığınız API'lerin kapsamını belirleyin.
FCM sunucu anahtarını gizli tutun
Firebase hizmetleri için API anahtarlarından farklı olarak, FCM sunucu anahtarları ( eski FCM HTTP API) hassastır ve gizli tutulmalıdır.
Hizmet hesabı anahtarlarını gizli tutma
Ayrıca Firebase hizmetleri API anahtarlarından farklı olarak, hizmet hesabı özel anahtarları (kullanılan (Firebase Admin SDK) hassastır ve gizli tutulmalıdır.
Firebase Security Rules
Kuralları üretimde veya kilitli modda başlatma
Cloud Firestore, Realtime Database ve Cloud Storage hizmetlerini ayarladığınızda tüm erişimleri varsayılan olarak reddeden güvenlik kuralları ve erişim izni veren ve uygulamanızı geliştirirken belirli kaynaklardan yararlanın.
Yeni Cloud Firestore (üretim) örnekleri için varsayılan ayarlardan birini kullan mod) ve Realtime Database (kilitli mod). Cloud Storage için bir güvenlik seviyesiyle başlayın şu şekilde bir kural yapılandırması oluşturun:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if false;
}
}
}
Güvenlik kuralları bir şemadır; doküman eklerken kural ekleme
Uygulamanızı yazdıktan sonra lansman öncesi gibi güvenlik kuralları yazmayın. görevi görebilir. Bunun yerine, uygulamanızı yazarken güvenlik kuralları yazın ve bunları Yeni bir belge türü veya yol yapısı kullanmanız gerektiğinde güvenlik kuralını yazacağım.
Güvenlik kurallarını Local Emulator Suite ile birim test edin; onu CI'ya ekle
Güvenlik kurallarınızın, uygulama geliştirmenize uygun olduğundan emin olmak için kurallarınızı Firebase Local Emulator Suite ve bu testleri CI ardışık düzeninize ekleyin. Aşağıdakiler için bu kılavuzlara göz atın: Cloud Firestore ve Realtime Database.
Doğrulama
Özel kimlik doğrulama: Güvenilir (sunucu tarafı) bir ortamdan JWT'leri yazın
Halihazırda güvenli bir oturum açma sisteminiz varsa, ister özel bir sistem ister üçüncü taraf hizmetiyle kimlik doğrulaması yapmak için mevcut sisteminizi Firebase hizmetleri. Özel JWT'ler oluşturma Ardından jetonları istemcinize iletin. İstemciniz, kimlik doğrulama jetonu (iOS+, Android, Web, Unity, C++) girin.
Üçüncü taraf sağlayıcıyla özel kimlik doğrulama kullanımına ilişkin bir örnek için bkz. ve Okta'yı kullanarak Firebase ile kimlik doğrulayın.
Yönetilen kimlik doğrulama: OAuth 2.0 sağlayıcıları en güvenlidir
Firebase'in yönetilen kimlik doğrulama özelliklerini kullanıyorsanız OAuth 2.0 / COPPA Bağlantı sağlayıcı seçenekleri (Google, Facebook vb.) en güvenli olanlardır. Siz yapabiliyorsanız bu sağlayıcılardan birini veya daha fazlasını desteklemelidir (kullanıcınıza bağlı olarak baz alınır).
E-posta şifresi kimlik doğrulaması: kaba kuvvet saldırılarını önlemek için oturum açma uç noktası için sıkı kota ayarlayın
Firebase'in yönetilen e-posta şifresi kimlik doğrulama hizmetini kullanıyorsanız
kaba durumu önlemek için identitytoolkit.googleapis.com
uç noktalarının varsayılan kotası
kuvvetli saldırılardır. Bu işlemi şuradan yapabilirsiniz:
Identity Toolkit API sayfası
Google Cloud konsolunda kontrol edebilirsiniz.
E-posta şifresi kimlik doğrulaması: E-posta numaralandırma korumasını etkinleştir
Firebase'in yönetilen e-posta şifresi kimlik doğrulama hizmetini kullanıyorsanız e-posta numaralandırma korumasını etkinleştirme Böylece kötü amaçlı kişilerin projenizin kimlik doğrulama uç noktalarını kötüye kullanmalarını hesap adlarını tahmin et.
Çok öğeli kimlik doğrulaması için Google Cloud Identity Platform sürümüne geçin
Oturum açma sırasında ekstra güvenlik için çok öğeli kimlik doğrulaması desteği ekleyebilirsiniz Google Cloud Identity Platform sürümüne geçerek yapabilirsiniz. Mevcut Firebase Authentication kodunuz üst sürüme geçmenizin ardından çalışmaya devam edecektir.
Anonim kimlik doğrulama
Bilgilendirici ilk katılım için yalnızca anonim kimlik doğrulama kullan
Kullanıcılar, doğrulama yapmadan önce kullanıcıların temel durumunu kaydetmek için anonim kimlik doğrulamayı yalnızca kullan. oturum açmanız gerekir. Anonim kimlik doğrulama, kullanıcının tercihine bağlı değildir oturum açın.
Verilerinin diğer cihazlarda olmasını isteyecek kullanıcıları başka bir oturum açma yöntemine dönüştürme
Kullanıcı, yerel verileri temizlerse anonim kimlik doğrulama verileri kalmaz veya cihazlar arasında geçiş yapılmasını sağlar. Uygulamanın yeniden başlatılması dışında verileri saklamanız gerekiyorsa her yerde kullanıcıyı kalıcı hesaba dönüştürme.
Kullanıcıların oturum açma sağlayıcısına dönüşmesini veya e-posta adresini doğrulamasını gerektiren güvenlik kuralları kullanma
İsteyen herkes projenizde anonim hesap oluşturabilir. Demek ki, herkese açık olmayan tüm verileri belirli oturum açma yöntemleri veya doğrulanmış e-posta adresleri gerektiren güvenlik kuralları.
Örneğin:
allow write: if request.auth.token.firebase.sign_in_provider != "anonymous";
allow write: if request.auth.token.email_verified = true;
Cloud Functions savunma sayısı aldı
Ortam değişkenlerine hiçbir zaman hassas bilgiler eklemeyin
Genellikle kendi bünyesinde barındırılan bir Node.js uygulamasında özel anahtarlar gibi hassas bilgiler sağlar. Bunu Cloud Functions içinde yapmayın. Cloud Functions, yeniden kullandığı için ortamlarda, hassas bilgiler sağlanmamalıdır. depolanan verileri içerebilir.
Firebase API anahtarlarını (gizli olmayan) depolamak için: içine yerleştirmeniz gerekir.
Firebase Admin SDK öğesini Cloud Functions içinde kullanıyorsanız hizmet hesabı kimlik bilgilerini açıkça sağlamanız gerekir; çünkü Admin SDK sırasında otomatik olarak edinilebilir.
Hizmet hesabı gerektiren Google ve Google Cloud API'lerini çağırıyorsanız Böylece, Node.js'nin Google Auth kitaplığı bu kimlik bilgilerini alabilir şuradan uygulama varsayılan kimlik bilgileri, Bunlar Cloud Functions ile otomatik olarak doldurulur.
Google dışı hizmetlere ait özel anahtarları ve kimlik bilgilerini Cloud Functions, kullan Secret Manager
Hassas bilgileri şifreleme
Fonksiyonlarınıza hassas bilgiler iletmekten kaçınamıyorsanız bilgileri şifrelemek için kendi özel çözümünüzü oluşturabilirsiniz.
Basit işlevler daha güvenlidir; Karmaşıklığa ihtiyacınız varsa Cloud Run
İşlevlerinizin mümkün olduğunca temel ve anlaşılır olmasına özen gösterin. Karmaşıklık çoğu zaman fark edilmesi zor hatalara veya beklenmedik davranışlara neden olabilir.
Karmaşık mantığa veya ortam yapılandırmalarına ihtiyacınız varsa Cloud Run - Cloud Functions.
Çevre yönetimi
Geliştirme ve hazırlık projeleri oluşturma
Geliştirme, hazırlık ve üretim için ayrı Firebase projeleri oluşturun. Hazırlık için test edilene kadar istemci kodunu üretimle birleştirme belirler.
Ekibin üretim verilerine erişimini sınırlama
Daha büyük bir ekiple çalışırsanız hataların sonuçlarını azaltabilirsiniz. aşağıdakilerden birini kullanarak üretim verilerine erişimi sınırlandırarak ve güvenlik ihlallerini önceden tanımlanmış IAM rolleri veya özel IAM rolleri
Ekibiniz Firebase Local Emulator Suite kullanıyorsa geliştirme için (önerilir), Chrome Web Mağazası'ndaki bir üretim projesidir.
Kütüphane yönetimi
Kitaplıkla ilgili yazım hataları yapma veya kitaplığın yeni bakımını üstlenme konusunda dikkatli olun
Projenize kitaplıklar eklerken, kütüphanenin adına çok dikkat edin. üzerine konuşacağız. Yapmak istediğinize benzer ada sahip bir kitaplık yükleme kötü amaçlı kod içerebilir.
Değişiklikleri anlamadan kitaplıkları güncellemeyin
Yeni sürüme geçmeden önce kullandığınız kitaplıkların değişiklik günlüklerini inceleyin. Emin olun o yükseltmenin değer kattığından emin olun ve sahibin hâlâ sizin aklınıza gelen güven.
Watchdog kitaplıklarını, geliştirme veya test bağımlılıkları olarak yükleyin
Projenizi taramak için Snyk gibi bir kitaplık kullanın güvensiz bağımlılıkları ortaya koyabilir.
Cloud Functions için izlemeyi ayarlayın; kitaplık güncellemelerinden sonra kontrol et
URL'yi Cloud Functions logger SDK'sı CANNOT TRANSLATE izleyin ve uyarı alın (kitaplık güncellemelerinin neden olduğu davranışlar da dahil olmak üzere) olağan dışı davranıştır.