我正在使用 Firebase 后端制作一個 react-native 應用程式。
用戶組態檔資訊存盤在“”集合下未加密的 Firestore 中Users,如下所示:
Users : {
<uid1> : { // this is a document
uid : <uid1>,
name : "Sundar Pichai",
dob : 428535558167,
email : "[email protected]",
photo : "https://api.time.com/wp-content/uploads/2020/09/time-100-Sundar-Pichai.jpg",
company : "Google",
},
}
客戶端應用會獲取一些用戶的檔案,應用會public在螢屏上顯示資料(僅限有限的資料),例如name和photo。除非客戶端用戶具有某些特定特權,否則
應用程式不會顯示其他私人資訊dob,例如等。email
我擔心如果整個檔案在客戶端仍然可用,有人可以對收到的資料包/資料進行事后分析并能夠讀取所有資料欄位嗎?
特別是如果它是一個 Web 應用程式。
我能想到的一種解決方案是將單獨的檔案用于公共和私人視圖。但這意味著:[1] 幾乎是讀取次數的兩倍,并且 [2] 我無法使用僅在私有檔案中的密鑰來查詢公共資訊,例如dob
UsersPublicInfo : {
<uid1> : { // this is a document
uid : <uid1>,
name : "Sundar Pichai",
photo : "https://api.time.com/wp-content/uploads/2020/09/time-100-Sundar-Pichai.jpg",
company : "Google",
},
}
UsersPrivateInfo : {
<uid1> : { // this is a document
dob : 428535558167,
email : "[email protected]",
},
}
我是不是太擔心這個資料檢查了?
這是資料安全的問題嗎?
PS:這實際上不是特定于 Firebase 的問題。
uj5u.com熱心網友回復:
在 Firestore 中,如果有人可以閱讀檔案,他們將始終獲得該檔案中的所有資料。如果您允許客戶端應用程式直接訪問資料庫,則不可能保護每個欄位的資料。
由于您提到的原因,將公共資料和私有資料拆分為具有不同安全規則的不同集合是很常見的。這是您確保用戶只能訪問您希望他們擁有的特定資料的方式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/492826.html
