Firebase安全规则 - Auth生成的UID应该保密吗?

时间:2017-10-02 09:10:03

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

我一直在阅读Firebase实时数据库安全规则指南(https://firebase.google.com/docs/database/security),如果我保留Firebase Auth生成的UID,我会有点困惑(假设我的App用户使用Facebook认证自己)秘密?我有这种数据结构:

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

因此,如果某些恶意黑客获取某些UID,他是否能够读取/写入个人用户的数据?据我所知,如果有人知道UID,他/她可以设置一个请求并伪装成该用户进行身份验证吗?或者我在这里遗漏了什么?

非常感谢!

1 个答案:

答案 0 :(得分:1)

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

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

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

这完全取决于您定义的规则。当您在箭头处定义规则时,您不必担心。

相关问题