我的應用程序使用谷歌的AngularJS + Firebase身份驗證。 當用戶註冊到它會在數據庫中的用戶的輸入的應用程序,如下圖所示:保護授權用戶更新自己的數據的firebase數據
user
->Firebase Unique Key
-> UserId: "google ID"
-> User Name: "User Name"
-> Payment Status:"No"
現在,一旦用戶登錄,用戶將看到的付款方式,一旦付款已完成數據庫值特定ID會如上面的JSON所示,填充「付款狀態」。一旦付款狀態爲是,則只允許用戶查看主頁面。
我已經創建安全規則,如下圖所示:
{
"rules": {
".read": "true",
"user":{
".write": "auth.provider == 'google' && auth.uid!=null"
}
}}
現在的問題是:誰可以登錄使用谷歌訪問寫入該數據庫中的任何用戶。所以一旦用戶被授權,用戶可以對數據庫進行更改。用戶也可以從本地主機運行他自己的代碼,並可以對數據庫進行更改。我不希望任何用戶破解數據並將支付狀態標記爲「是」並進入主網站。
如何確保授權用戶不會在此數據庫中執行任何惡意行爲。
感謝弗蘭克的迴應。但是firebase中是否有任何方法來阻止用戶在本地主機上運行相同的代碼副本。由於他們有權訪問數據庫,因此他們肯定可以通過從他們自己的本地主機引用firebase網址來執行任何惡意活動。我嘗試從授權域中刪除本地主機,但在默認情況下,授權域包括:localhost – Lani
「是否有任何方式在firebase中阻止用戶在本地主機上運行相同的代碼副本」否。如果這是您的問題,將標記爲重複。但是想一想:如果用戶正在運行代碼的副本,並且堅持您設置的安全規則,那麼他們可以做什麼惡意用法? –
他們可以通過存儲一些惡意腳本來淹沒數據庫。按照上面給出的答案,只有當我使用服務器時才能停止。但是,如果我只是使用客戶端語言和firebase,那麼在這種情況下,他們可以在數據庫中存儲任何內容,因爲他們可以訪問該數據庫。 – Lani