- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个“post”和“user”集合,在帖子中我附加了“userId”作为对用户文档的引用
一切都很完美,除了我在 Post 文档上调用的 get().data() 方法暴露了所有敏感数据(我将通过 Express 服务器发送给客户端)
const ref = (await firestore.doc(...).get()).data()
res.json({
success: true,
msg: ref,
});
这是我在 ref 变量中得到的:
{
"success": true,
"msg": {
"foo": "bar",
"userId": {
"_firestore": {
"_settings": {
"credentials": {
"private_key": "-----BEGIN PRIVATE KEY---------END PRIVATE KEY-----\n", <--- Big problem
"client_email": "..."
},
"projectId": "cpanel-9ac21",
"firebaseVersion": "8.9.0",
"libName": "gccl",
"libVersion": "3.3.3 fire/8.9.0",
"servicePath": "firestore.googleapis.com",
"port": 443,
"clientConfig": {},
"scopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/datastore"
]
},
"_settingsFrozen": true,
"_serializer": {},
"_projectId": "cpanel-9ac21",
"_lastSuccessfulRequest": 1578712168345,
"_backoffSettings": {
"initialDelayMs": 100,
"maxDelayMs": 60000,
"backoffFactor": 1.3
},
"_preferTransactions": false,
"_clientPool": {
"concurrentOperationLimit": 100,
"maxIdleClients": 1,
"activeClients": {},
"terminated": false
}
},
"_path": {
"segments": [
"users",
"TXMF00S2PugwdwO5ge3vwQA6pV63"
]
}
},
"foo": "bar"
}
}
我也在网上搜索过,但遗憾的是没有找到答案/解决方案
最佳答案
对于 Firestore,将公共(public)数据与私有(private)数据分开的典型方法是将它们放入不同的集合中。因此,如果您有一篇文章,并且需要划分公共(public)数据和私有(private)数据,那么您可能有两个集合:“posts-public/{id}”和“posts-private/{id}”。或者您可以在同一 ID 下使用子集合:“posts/{id}/public”和“posts/{id}/private”。
拆分集合后,您还可以使用不同的安全规则来保护它们,这些规则仅允许访问用户应该能够看到的内容。如果您根本不希望用户看到任何私有(private)数据,那么该集合不应授予访问权限。
关于javascript - DocumentReference 返回敏感数据 - Firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691606/
我正在遍历自定义数据对象列表,并以可分页的格式将数据输出到屏幕。每个项目都需要提供编辑详细信息(重定向到另一个 View )和删除数据的能力。为此,我需要传递某种 id 来标识将要更新或删除的记录。我
我们正在使用 React-Native 构建移动应用程序,需要将一些敏感数据(例如客户端 key /密码)嵌入到移动应用程序本身中。 在安全性方面(最难进行逆向工程),标准做法是什么?数据应该在 na
我们已经知道使用 char[] 而不是 String 来处理敏感数据的建议/做法。有多种原因。一种是在不再需要敏感数据后立即清理它们: char[] passwd = passwordProvider
我有一些敏感数据想在使用后直接清除。目前,敏感数据的形式是 NSString。 NSString 在我的理解中是不可变的,这意味着我无法真正清除数据。不过,NSMutableString 似乎更合适,
我想知道如何推送到我的 Github 存储库(我需要公开该存储库,以便向雇主展示),而不显示敏感信息。我正在使用 Eclipse/Java。 我制作了一个在 Chrome 中使用 Selenium w
我是一名优秀的程序员,十分优秀!