2016-02-15 48 views
37

Firebase提供數據庫後端,以便開發人員可以專注於客戶端代碼。如何限制Firebase數據修改?

所以,如果有人把我的firebase uri(例如,https://firebaseinstance.firebaseio.com),然後在其上開發本地

然後,他們是否可以在我的Firebase實例之外創建另一個應用,註冊並驗證自己以讀取我的Firebase應用的所有數據?

回答

38

感謝你們雙方的討論。不過,我想添加一個細節。

@Frank van Puffelen,

您提到了網絡釣魚攻擊。實際上有一種方法來保證這一點。

如果您登錄到您的googleAPI API Manager控制檯,則可以選擇鎖定您的應用接受請求的HTTP引用鏈接。

  1. 訪問https://console.developers.google.com/apis
  2. 轉到您的火力點項目
  3. 轉到憑證
  4. 在API鍵,選擇與您的火力點項目相關的瀏覽器密鑰(應具有相同的密鑰您使用API​​密鑰初始化你的火力應用程序。)
  5. 在「接受來自這些HTTP參照請求(網站),只需添加您的應用程序的URL。

這應該只允許列入白名單的網域使用您的應用。

這還描述了在火力發射,清單在這裏:https://firebase.google.com/support/guides/launch-checklist

也許火力文檔能做出這樣的能見度或默認自動鎖定域並要求用戶允許訪問?

再次,非常感謝!

+1

當我轉到Google API控制檯時,我看不到鎖定HTTP引用鏈接的選項。屏幕截圖會有所幫助。 thx – rattanak

+0

您是否按照上述步驟嘗試過?它應該把你帶到那裏。出於安全原因,我不打算使用screencap。請記住要查找瀏覽器密鑰。祝你好運。 – prufrofro

+2

如何使用混合移動應用程序的Firebase,使用類似離子的框架,如何將白名單工作?有什麼建議麼? – Dinana

23

有人知道你的URL並不是安全風險。

例如:我沒有問題告訴你,我的銀行在bankofamerica.com上託管它的網站,它在那裏說HTTP協議。除非您也知道我用來訪問該網站的憑據,否則瞭解該網址對您沒有任何好處。確保所有的數據堅持要

  • 授權規則,以確保數據的每一位只能是一個結構

    • 驗證規則:

      爲了保護您的數據,你的數據庫應該被保護由授權用戶閱讀和修改

    這全部包含在Firebase documentation on Security & Rules中,我強烈推薦。

    有了這些安全規則,否則只有這樣別人的應用程序可以在數據庫中訪問數據,如果他們複製你的應用程序的功能,有用戶登錄到他們的應用程序,而不是你的和登錄/讀取/寫入您的數據庫;基本上是一種網絡釣魚攻擊在這種情況下,數據庫中沒有安全問題,儘管可能需要時間讓一些權威人員參與。

  • +1

    不太我正在尋找的答案。讓我以另一種方式問你。假設我將這個URL提供給了我的firebase'https:// tinderclone.firebaseio.com /'和'https:// tinderclone.firebaseio.com/profiles.json'。他們是真正的firebase數據庫。你可以開發一個應用程序,使用電子郵件註冊表單和登錄表單。由於我的應用程序允許任何人通過電子郵件註冊,所以在您註冊後,您是否可以閱讀所有數據?稍後我會再問你一個問題。謝謝 – rattanak

    +2

    這取決於你如何保護你的數據庫。只需添加'「.read」:false'就可以防止任何人看到數據。你可能想要允許多一點,但這一切都取決於你的用例。 [Firebase關於安全和規則的文檔](https://www.firebase.com/docs/security/)涵蓋了保護數據的安全。 –

    1

    關於驗證白名單的移動應用,其中域名是不適用的,火力地堡有

    1)SHA1 fingerprintAndroid應用

    2)App Store ID and Bundle ID and Team ID (if necessary)iOS應用

    您必須在Firebase控制檯中進行配置。

    有了這種保護,因爲驗證不只是如果有人有有效的API密鑰,身份驗證域等,但也就是從我們獲得授權的應用和未來網絡domain name/HTTP referrer in case

    表示,我們不必擔心這些API鍵和其他連接參數是否暴露給其他人。

    富勒更多信息,https://firebase.google.com/support/guides/launch-checklist