首页 文章

Firebase - 仅允许使用密码和电子邮件从应用程序登录

提问于
浏览
0

我正在使用Firebase为所有数据存储构建iOS应用程序 . 用户创建一个帐户并使用密码和电子邮件登录 . 出于安全原因,我想限制登录,或者至少只限读取和写入访问 . 除非他们使用该应用程序,否则我不希望“任何人”创建帐户和访问数据 .

据我了解,如果他们找到了我的Firebase数据库的URL,则只要他们已登录,任何人都可以访问这些数据 . 这对我来说似乎是一个很大的安全风险 .

我当然实现了安全规则,但是登录的用户仍然可以在不同的位置读取和写入数据库,所以基本上他们可以使用Javascript API连接我的Firebase数据库然后读写?任何人都可以创建用户,只要他们知道我的数据库的URL?

有没有办法防止这种情况,例如在使用电子邮件和密码登录时使用自定义令牌?

1 回答

  • 0

    回答你的一些问题:

    ...但是登录的用户仍然可以在不同的位置读取和写入数据库,所以基本上他们可以使用Javascript API连接我的Firebase数据库然后读写?

    您可以使用the $other rule确保没有额外的密钥写入您的Firebase数据库:

    "$other": {
      ".validate": "false"
    },
    

    但您也可以使用更精细的规则来确保用户只能访问所需的数据 .

    {
      "rules": {
        ".read": "auth != null", // only authed users can read/write
        ".write": "auth != null",
        "users": {
          "$uid": {
            ".read": "auth.uid == $uid", // users can read/write their own data
            ".write": "auth.uid == $uid"
          }
        }
      }
    }
    

    任何人都可以创建用户,只要他们知道我的数据库的URL?

    要创建用户,您还需要使用您在App Dashboard中指定的有效来源 . 这意味着,不只是拥有您网址的任何人都可以开始创建用户 .

    enter image description here

相关问题