Firebase veri değişikliği nasıl kısıtlanır?


93

Firebase, geliştiricilerin istemci tarafı koduna odaklanabilmesi için veritabanı arka ucu sağlar.

Yani birisi benim firebase uri'mi alırsa (örneğin, https://firebaseinstance.firebaseio.com) o zaman yerel olarak geliştirin .

Ardından, Firebase örneğimden başka bir uygulama oluşturup, Firebase uygulamamın tüm verilerini okumak için kaydolabilir ve kendi kimliklerini doğrulayabilirler mi?

Yanıtlar:


104

@Frank van Puffelen,

Kimlik avı saldırısından bahsettiniz. Aslında bunu güvence altına almanın bir yolu var.

GoogleAPIs API Yöneticisi konsolunuza giriş yaparsanız, uygulamanızın hangi HTTP yönlendiricisinden gelen isteği kabul edeceğini kilitleme seçeneğiniz vardır.

  1. https://console.developers.google.com/apis adresini ziyaret edin
  2. Firebase projenize gidin
  3. Kimlik bilgilerine git
  4. API anahtarları altında, firebase projenizle ilişkili Tarayıcı anahtarını seçin (firebase uygulamanızı başlatmak için kullandığınız API anahtarıyla aynı anahtara sahip olmalıdır.)
  5. "Bu HTTP yönlendiricilerinden (web siteleri) gelen istekleri kabul et" altında, uygulamanızın URL'sini eklemeniz yeterlidir.

Bu, yalnızca beyaz listedeki alanın uygulamanızı kullanmasına izin vermelidir.

Bu, burada, firebase başlatma kontrol listesinde de açıklanmıştır: https://firebase.google.com/support/guides/launch-checklist

Firebase belgeleri bunu daha görünür hale getirebilir veya varsayılan olarak alanı otomatik olarak kilitleyebilir ve kullanıcıların erişime izin vermesini gerektirebilir mi?


2
Google API konsoluna gittiğimde, HTTP yönlendireni kilitleme seçeneğini görmüyorum. Ekran görüntüsü yardımcı olacaktır. thx
rattanak

Yukarıdaki adımları izlemeyi denediniz mi? Seni oraya götürmeli. Güvenlik nedenleriyle, ekran görüntüsü almayacağım. Tarayıcı anahtarını aramayı unutmayın. iyi şanslar.
prufrofro

4
Firebase'i hibrit bir mobil uygulama ile kullanırken, ionic gibi bir çerçeve kullanırken beyaz listeleme nasıl çalışabilir? Herhangi bir öneri?
Dinana

1
@prufrofro Bu sizin için iyi çalışıyor mu? Aynı şeyi bir Android uygulaması için yapmayı düşünüyordum. Firebase'in bunu neden güvenlik bölümünde ele almadığını merak ediyorum.
steliosf

2
@Anand Evet ancak Firebase bunu belgelerde ele almıyor. Varsayılan olarak anahtarlar geneldir ve bunları yalnızca belirli bir paket adında ve SHA-1 uygulama sertifikasında kullanım için manuel olarak kısıtlamanız gerekir. Ve Firebase'in bundan neden hiç bahsetmediğini merak ediyordum. Yakalama falan var mı?
steliosf

38

Birinin URL'nizi biliyor olması bir güvenlik riski oluşturmaz.

Örneğin: Size bankamın web sitesini bankofamerica.com'da barındırdığını ve orada HTTP protokolünü konuştuğunu söylemekte sorun yaşamıyorum. Bu siteye erişmek için kullandığım kimlik bilgilerini de bilmiyorsanız, URL'yi bilmek size hiçbir fayda sağlamaz.

Verilerinizin güvenliğini sağlamak için veritabanınız aşağıdakilerle korunmalıdır:

  • Tüm verilerin istediğiniz bir yapıya uymasını sağlayan doğrulama kuralları
  • Her bir veri bitinin yalnızca yetkili kullanıcılar tarafından okunup değiştirilebilmesini sağlamak için yetkilendirme kuralları

Bunların tümü , şiddetle tavsiye ettiğim Güvenlik ve Kurallar ile ilgili Firebase belgelerinde ele alınmıştır .

Bunlar, uygulama işlevselliğini kopyalamak kullanıcıların işareti varsa yerde bu güvenlik kuralları ile, veritabanındaki verilere erişebilir tek yolu başkasının uygulaması onların yerine de / seninkinden ve işaretin uygulamasından / yazma okundu veritabanınız; esasen bir phishing saldırısı. Bu durumda veritabanında herhangi bir güvenlik sorunu yoktur, ancak muhtemelen bazı yetkilileri dahil etme zamanı gelmiştir.


4
tam aradığım cevap değil. Size farklı bir şekilde sorayım. Bu url'yi size firebase'ime verdiğimi varsayalımhttps://tinderclone.firebaseio.com/ ve https://tinderclone.firebaseio.com/profiles.json. Bunlar gerçek firebase veritabanıdır. E-posta ile bir kayıt formu ve giriş formu oluşturarak bir uygulama geliştirebilir misiniz? Uygulamam herkesin e-posta ile kaydolmasına izin verdiğinden, siz kaydolduktan sonra tüm verileri okuyabilecek misiniz? Sana daha sonra başka bir soru soracağım. Teşekkürler
rattanak

4
Bu, veritabanınızı nasıl güvence altına aldığınıza bağlıdır. Basitçe eklemek ".read": false, herhangi birinin verileri görmesini engeller. Muhtemelen bundan biraz daha fazlasına izin vermek istersiniz, ancak hepsi kullanım durumunuza bağlıdır. Verilerin güvenliğini sağlama, Güvenlik ve Kurallar ile ilgili Firebase belgelerinde ele alınmıştır .
Frank van Puffelen

6

Alan adının geçerli olmadığı mobil uygulamalar için Auth beyaz listesi ile ilgili olarak Firebase,

1) SHA1 fingerprintiçin Android uygulamaları ve

2) App Store ID and Bundle ID and Team ID (if necessary)sizin için iOS uygulamaları

Firebase konsolunda yapılandırmanız gerekecek.

Bu koruma sayesinde doğrulama olmadığından, birisi vb geçerli API anahtarı, Auth domain var sadece eğer, aynı zamanda, bizim yetkili uygulamalardan ve gelmesidir domain name/HTTP referrer in caseait Web .

Dedi ki, bu API anahtarı ve diğer bağlantı parametreleri başkalarına maruz kalırsa endişelenmemize gerek yok.

Daha fazla bilgi için https://firebase.google.com/support/guides/launch-checklist


Cehaletimi bağışlayın, şifreleme konusunda pek iyi değilim ama Sha1'e apk'nizden erişilemiyor mu? İnsanlar sadece Sha1'i kopyalayamaz mı? Bunun nasıl yardımcı olduğunu anlamıyorum. Aksi halde ispatlanmaktan çok mutlu olurum :)
cs adam

Evet. Kesinlikle bir apk'nin sha1'ini alabilirsiniz. Ancak bu, aramanızı doğrulamak için firebase'e bir parametre olarak geçirdiğiniz bir şey değildir. Firebase tarafından api-sdk seviyesinde alınır (android çalışma zamanına göre). Dolayısıyla, bağlantıyı sahte hale getirmek için bunu firebase'e bir parametre olarak gönderemezsiniz.
Anand

Yalnızca SHA1 parmak izini kullanmak, Android uygulaması iletişiminizin Firebase ile güvenliğini sağlamak için hiçbir şeye yardımcı olmaz. SHA1'in kendisi kolayca elde edilebilir ve kopyalanabilir ve bağlantı, SDK yerine Firebase API kullanılarak yine de taklit edilebilir. Öncelikle uygulamanızı onaylamalı ve anahtarı gizlemek için bazı kod gizleme kullanmalısınız.
FEBRYAN ASA PERDANA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.