【问题标题】:Firebase security rules - is Auth generated UID ought to be kept secret? [duplicate]Firebase 安全规则 - Auth 生成的 UID 是否应该保密? [复制]
【发布时间】:2018-03-13 08:28:59
【问题描述】:

我一直在阅读 Firebase 实时数据库安全规则指南 (https://firebase.google.com/docs/database/security),对于是否应该保留 Firebase Auth 生成的 UID(假设我的应用用户使用 Facebook验证自己)秘密?我有这种数据结构:

  • 用户
    • UID
      • 给定用户要读取/写入的大量个人数据节点 仅限。

那么,如果某个恶意黑客掌握了某些 UID,他是否能够读取/写入个人用户的数据?据我所知,如果有人知道 UID,他/她可以设置一个请求并假装作为该用户进行身份验证?还是我在这里遗漏了什么?

非常感谢!

【问题讨论】:

  • 用户的 UID 不是秘密。它只是一个标识符,类似于您在 Stack Overflow 上的 ID 7276386。知道您的 ID 不允许用户冒充您。在这里查看我的详细解释:stackoverflow.com/questions/37221760/…

标签: ios mobile firebase-realtime-database firebase-authentication firebase-security


【解决方案1】:

不可以,uid 可以在规则中的 auth.uid 下检索。这是服务器端。以这条规则为例:

   "users": {
      "$uid": {
        ".read": "$uid === auth.uid", <--------------------------------
          "online": {
            ".read": "auth != null",
            ".write": "$uid === auth.uid"
          },

箭头表示我的意思。如果您有其他人的 UID 并不重要,因为当您尝试使用该规则检索数据时,它将失败,因为存在不匹配。 auth.uid 是服务器端,据我所知,受到很好的保护。他可以更改自己的 UID 客户端并尝试检索数据,但使用安全规则可以阻止数据交换。

一切都取决于您定义的规则。当您在箭头处定义规则时,您不必担心。

【讨论】:

    猜你喜欢
    • 2018-08-15
    • 1970-01-01
    • 2021-09-08
    • 2017-04-09
    • 2014-03-12
    • 2016-06-17
    • 2018-01-12
    • 2017-08-07
    相关资源
    最近更新 更多