Firebase - auth.uid是共享密钥吗?

时间:2016-05-14 02:14:30

标签: firebase firebase-authentication

当有人通过oAuth进行身份验证时,Firebase会创建一个类似于google:111413554342829501512的uid。

在Firebase规则中,您可以执行(读取和/或写入):

".read": "root.child('users').child(auth.uid).child('isAdmin').val() == true"

由于使用HTTPS,我是否认为我无法通过嗅探网络来阅读邮件?它是如何工作的 - UID是Firebase规则使用的共享密钥吗?

我在浏览器中的本地存储中的firebase:session::ack中看到UID一旦经过身份验证。

1 个答案:

答案 0 :(得分:10)

了解某人的用户ID不存在安全风险。

例如,我知道您的Stack Overflow用户ID是4797603.仅此事实就让我可能在Stack Overflow上找到您。

但它绝不允许我假装我是Ron Royston。要执行后者,我需要知道您用于登录的用户名和密码(以及任何其他因素)。

同样适用于Firebase。如果你知道我在某个Firebase支持的应用程序中的uid是google:105913491982570113897,你就不能突然假装成为我。 Firebase服务器验证auth.uid值是否基于该用户的实际凭据。唯一的办法是以我身份登录,在这种情况下,您需要知道我的Google凭据。