我的Swift iOS應用只使用Firebase匿名登錄。我擔心我的Firebase數據庫的安全性,因爲顯然任何人都可以訪問或刪除我的數據(通過瀏覽器等)。Swift:Firebase:如何確保除我的應用以外沒有人可以訪問我的分區
如何保護我的分區,以便只有我的iOS應用可以訪問它?
我原以爲Firebase儀表板允許生成一個API密鑰,我可以將其嵌入到我的應用中,但似乎並非如此。
我的Swift iOS應用只使用Firebase匿名登錄。我擔心我的Firebase數據庫的安全性,因爲顯然任何人都可以訪問或刪除我的數據(通過瀏覽器等)。Swift:Firebase:如何確保除我的應用以外沒有人可以訪問我的分區
如何保護我的分區,以便只有我的iOS應用可以訪問它?
我原以爲Firebase儀表板允許生成一個API密鑰,我可以將其嵌入到我的應用中,但似乎並非如此。
You need to write security rules.
任何人都可以看到你的網址,但安全規則是你如何決定誰有訪問什麼的數據塊。
這些規則的作用類似於您的數據結構的註釋,並指定必須滿足哪些約束來允許讀取或寫入。
假設您要保護您的數據庫,以便只有經過身份驗證的用戶才能訪問數據庫。這些是實時數據庫的默認規則。
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}
的auth
變量存儲當前認證用戶的服務器側的值。該規則檢查該變量是否有值,因此包含登錄的用戶。
我本來期望的是,儀表盤火力地堡允許產生,我可以在我的應用程序中嵌入 API密鑰,但似乎並沒有成爲 情況。
的火力地堡控制檯會給你一個密鑰,這將讓您完全不顧規則。但是,如果您將其嵌入到應用程序中,則不再安全。這就是您使用身份驗證的原因,因爲這會爲特定的登錄用戶創建針對該密鑰的令牌。
如果您的應用程序直接與數據庫交談,那麼對於某人捕獲/分析通信並完全繞過您的應用程序並直接與數據庫直接交談,這將是微不足道的。你基本上需要實現一個接口連接的web服務。所以它會是應用程序<-> webservice <-> db,而不是anyone_who_wants_to <-> db –
實際上,訪問任何人的firebase db是非常容易的,如果他們沒有保護它。所有你需要的是他們的firebase應用程序的網址,通常很容易猜到。然後你可以直接向它發出讀寫命令。 – Kashif