【发布时间】:2017-07-26 00:48:15
【问题描述】:
小问题:如果我在客户端公开其他用户的 UID,会有哪些风险/问题?
我的情况: 我正在构建一个测试 android 应用程序,它需要能够让 1)用户 foo 请求授权,以便 2)访问用户 A 的私人数据。
我不知道这是否是“duh”事实,但我似乎无法在 Firebase 上找到任何关于“DON'T EXPOSE UID”的警告。我一直在浏览用户安全部分和 Firebase 的聊天示例演示,常见的方法似乎是创建一个字段“共享”或“授权”,授权用户的 uid 为 true。我的问题主要是关于第一步。下面是我的数据结构的 sn-p。
{
"users" : {
"uid_of_user_a" : {
"requests" : {
"-KeXTQeFJ2gAiaazteO1" : {
"requestUid" : "uid_of_user_foo",
"targetUid" : "uid_of_user_a",
"timeStamp" : 123456
}
}
}
}
}
我的想法是这样的。
请求字段的规则是对于具有以下权限的用户是读/写的 uid_of_user_a,并且只有在这样的用户 推入匹配 uid_of_user_a 的 targetUid。
在客户端,用户 A 有一个附有对该字段的引用的 onChildEventListener。当客户端收到 onChildAdded 回调时,会出现一个对话框并要求确认。
如果确认,客户端从请求消息中获取请求者的uid,并推送到“授权”字段
然后用户 A 的私有数据可以通过授权字段中列出的 uid 读取。
问题:需要向客户端公开另一个用户的 uid。这种方法相当于打电话给某人,呼叫者必须先知道接收端的电话号码。所以,在没有实际提供电话号码和电子邮件的情况下,有人必须以某种方式知道 UID 才能传达消息并要求获取可共享的数据,对吧?....但是,我的直观方法似乎不太可靠。
我是 firebase 数据库和一般用户身份验证的新手,所以请原谅我的法语 :) 在此先感谢所有专家。
【问题讨论】:
标签: firebase firebase-realtime-database firebase-authentication