2017-06-02 27 views
0

我正在構建iOS應用程序並將Firebase數據庫用於後端。該應用沒有任何用戶。任何下載應用程序的用戶都應該可以訪問Firebase後端(某些功能需要我訪問後端才能讀取和寫入)。但是,我不想讓這個Firebase公開。目前,我設置Firebase安全規則的方式如下:如何配置iOS應用程序(Swift)以使用數據庫祕密訪問數據庫?

{ 
    "rules": { 
    ".read": "auth == null", 
    ".write": "auth == null" 
    } 
} 

很明顯,這提出了安全問題!同樣,我沒有任何「用戶」來創建auth uid來使其成爲更安全的數據庫。

我想是這樣的:下載的iOS應用

  • 用戶可以訪問到後端。任何人都可以在後端實質上「讀取」或「寫入」。
  • 沒有其他人可以訪問數據庫。

有沒有辦法做到這一點?我知道,在非iOS環境中,只需使用數據庫祕密就可以了,但我該如何爲iOS應用程序執行此操作?

回答

1

你不能!

好吧,你可能會找一個比這更透徹的解釋:

  1. 我們不提供任何解決方案,讓您與數據庫的祕密出貨的客戶端上,因爲坦率地說,它會對於一個糟糕的演員從客戶端提取這些值是相當微不足道的。

  2. 此外,這是一個非常糟糕的安全漏洞,可以說「我們只允許iOS客戶端訪問我的數據的任何部分」,因爲對於某些人來說,他們很容易混淆他們的客戶端並使其執行任務打算這樣做。 (或者創建他們自己的客戶端,並使它看起來像一個有效的iOS設備給你,然後把它做各種各樣的不好的東西在數據庫方面。)

一般情況下,要實現安全規則就好像任何客戶端請求進來一樣可能是不可信的。這可能意味着增加了比您原先想要的更復雜的安全規則,但從長遠來看,您的狀況會更好。

+0

這很有道理。我認爲增加更復雜的安全規則是更好的途徑。謝謝 –

相關問題