当有人通过oAuth进行身份验证时,Firebase会创建一个类似于google:111413554342829501512
的uid。
在Firebase规则中,您可以执行(读取和/或写入):
".read": "root.child('users').child(auth.uid).child('isAdmin').val() == true"
由于使用HTTPS,我是否认为我无法通过嗅探网络来阅读邮件?它是如何工作的 - UID是Firebase规则使用的共享密钥吗?
我在浏览器中的本地存储中的firebase:session::ack
中看到UID一旦经过身份验证。
答案 0 :(得分:10)
了解某人的用户ID不存在安全风险。
例如,我知道您的Stack Overflow用户ID是4797603.仅此事实就让我可能在Stack Overflow上找到您。
但它绝不允许我假装我是Ron Royston。要执行后者,我需要知道您用于登录的用户名和密码(以及任何其他因素)。
同样适用于Firebase。如果你知道我在某个Firebase支持的应用程序中的uid是google:105913491982570113897
,你就不能突然假装成为我。 Firebase服务器验证auth.uid
值是否基于该用户的实际凭据。唯一的办法是以我身份登录,在这种情况下,您需要知道我的Google凭据。