想象一下,有一個 Firestore 資料庫被1 - 靜態前端客戶端和2 - node.js 服務器使用。
本質上,只允許adomain和 anip address使用該資料庫,這很好用。
棘手的部分:
- 我們想讓node.js 服務器在整個資料庫上讀/寫
- 但是,如果用戶經過身份驗證,則只應允許 Web 客戶端在同一資料庫上讀/寫。
問題是rules無法將我們的ip address.
所以我們嘗試使用這個:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
然后 node.js 服務器可以signInAnonymously,而前端客戶端需要在訪問任何內容之前對用戶進行身份驗證。
我的問題
匿名登錄是否足夠安全?因為anonymous auth打開了,有人可以signInAnonymously從我們的前端進入嗎?有人可能會欺騙某些標頭并假裝是我們的域,只是為了將自己身份驗證為匿名嗎?
對于這種情況,最佳做法是什么?
uj5u.com熱心網友回復:
也許我可以分兩部分解釋這一點,
首先,不需要有人欺騙某些標頭并假裝是您的域。原因是如果有人可以直接從您的域中以匿名身份登錄,他們可以訪問您允許他們訪問的所有資訊
其次,也是最重要的一點是,我認為您對 Firebase 的 NodeJS 服務器端訪問有誤。如果您想從節點服務訪問整個資料庫,請使用 Firebase 管理 SDK,并且當您從 Firebase 管理 SDK 連接時,您無需進行任何型別的身份驗證即可讀寫,因為您具有管理員訪問權限。
僅供參考,您還可以從身份驗證設定中將您的身份驗證 ip 列入白名單,您可以在其中允許列入白名單的域
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375802.html
標籤:火力基地 验证 谷歌云firestore Firebase 身份验证 火力基地安全
