gpt4 book ai didi

Firebase 数据库 - 与在客户端公开 uid 相关的风险吗?

转载 作者:行者123 更新时间:2023-12-02 14:42:07 25 4
gpt4 key购买 nike

简短问题:如果我在客户端公开其他用户的 UID,会有哪些风险/问题?

我的情况:我正在构建一个测试 Android 应用程序,它需要能够让 1) 用户 foo 请求授权,以便 2) 访问用户 A 的私有(private)数据。

我不知道这是否是一个“废话”事实,但我似乎在 Firebase 上找不到任何关于“不要公开 UID”的警告。我一直在浏览用户安全部分和 Firebase 的聊天示例演示,常见的方法似乎是创建一个“共享”或“授权”字段,其中授权用户的 uid 为 true。我的问题主要是关于第一步。下面是我的数据结构的片段。

 {
"users" : {
"uid_of_user_a" : {
"requests" : {
"-KeXTQeFJ2gAiaazteO1" : {
"requestUid" : "uid_of_user_foo",
"targetUid" : "uid_of_user_a",
"timeStamp" : 123456
}
}
}
}
}

我的想法是这样的。

  1. 请求字段的规则是用户可以读/写uid_of_user_a,并且只有经过身份验证的用户才可写插入与 uid_of_user_a 匹配的 targetUid。

  2. 在客户端,用户 A 有一个附加了对此字段的引用的 onChildEventListener。当客户端收到 onChildAdded 回调时,会出现一个对话框并要求确认。

  3. 如果确认,客户端从请求消息中检索请求者的uid,并将其推送到“授权”字段

  4. 用户 A 的私有(private)数据可以通过授权字段中列出的 uid 读取。

问题:需要向客户端公开另一个用户的 uid。这种方法就像调用某人一样,调用者必须首先知道接收端的电话号码。因此,在没有实际提供电话号码和电子邮件的情况下,有人必须以某种方式知道 UID,以便传达消息并要求获取可共享数据,对吗?......但是,我的直觉方法似乎不太可靠。

我对 Firebase 数据库和用户身份验证不太熟悉,所以请原谅我的法语:) 提前感谢所有的专家。

最佳答案

UID 只是一个字符串。里面没有任何信息。这条 secret 信息是用户的密码(您永远看不到)和他们的临时身份验证 token ,该 token 会在一小时后过期。 SDK 将自动刷新该 token 。

如果您的安全规则设置正确,则没有问题。如果一个用户知道另一个用户的 UID,并且您的规则不允许,那么第一个用户就无法影响第二个用户的数据。您可能希望将有关用户的公共(public)信息和私有(private)信息分成 separate locations这样他们就可以有单独的安全规则(如果您需要的话)。

如果由于某种原因您仍然认为 UID 需要保密,您可以生成一个不同的 UUID 或其他东西来识别用户并使用它,但我不知道这会提供什么额外的安全性。

关于Firebase 数据库 - 与在客户端公开 uid 相关的风险吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42620723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com