由於AngularFire文檔較細,以及它與Firebase的默認Web文檔之間的差異,我對如何最好地保護與用戶的創建,讀取,更新和刪除操作有點失望。保護與用戶的Firebase CRUD操作
總之,假設我有一個管理商店的應用程序。用戶可以是商店或老主顧的所有者。業主應該在他們的視野中閱讀和編輯他們自己的商店,顧客應該閱讀所有內容,但不要在他們的視圖中編輯商店。
我擔心的火力地堡文檔如
因此,例如所建議的方法的安全性,我們可以像下面這樣的規則,以允許用戶 只要他們儲存他們創造的意見與 評論用戶名:
{
"rules": {
".read": true,
"$comment": {
".write": "!data.exists() && newData.child('user_id').val() == auth.id"
}
}
}
對我來說,這意味着我可以通過簡單地傳入我的受害者的用戶ID破解我的應用程序的數據時,我要發佈爲他們評論。我錯了嗎?
我已經幾次徹底閱讀安全文檔。我想我需要在這裏進一步解釋。通過客戶端暴露的參數進行識別是目前我能找到的唯一方法。
哦,這是個好消息。所以我可以將auth對象中的這些超長驗證字符串與所討論數據的屬性進行匹配。 –
但是這些令牌是否會因期滿而發生變化?我擔心,如果我將數據連接到這樣一個令牌,那麼一旦令牌更改,它們將被突然鎖定在數據之外。 –
如果Firebase的任何人傾聽,我建議整合諸如Kinvey所擁有的內容,其中每個集合都可以具有四個通用訪問模板之一,或者可以選擇退回到業務邏輯,如Firebase的規則。 –