代码之家  ›  专栏  ›  技术社区  ›  niclas_4

一个人知道管理员的UID可以吗?[副本]

  •  0
  • niclas_4  · 技术社区  · 7 年前

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

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

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

    是否假定由于使用了HTTPS,我无法通过嗅探网络来读取消息?是这样工作的吗-UID是Firebase规则使用的共享密钥?

    我看到里面有液体 firebase:session::ack 在我的浏览器中的本地存储中进行身份验证。

    0 回复  |  直到 10 年前
        1
  •  12
  •   Frank van Puffelen    7 年前

    知道某人的用户id不是安全风险。

    例如,我知道您的堆栈溢出用户id是4797603。仅此一点,我就有可能在堆栈溢出时找到您。

    但它绝不允许我假装我是罗恩·罗伊斯顿。要实现后者,我需要知道用于登录的用户名和密码(以及任何其他因素)。

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

    推荐文章