用户无法控制其注册为的电子邮件地址时的Firebase安全性

时间:2018-07-06 11:27:55

标签: firebase firebase-authentication google-cloud-firestore

一种情况:

  • 我使用以下安全规则将敏感数据存储在Firestore中:

    A. allow read: if resource.data.email == request.auth.token.email;
    
    B. allow read: if resource.data.email == request.auth.token.email && request.auth.token.email_verified == true;
    
  • 恶意用户Bob下载了我的JavaScript应用,并使用客户端调用创建了一个帐户,该帐户使用了他们无法控制的电子邮件“ x @ example”,并且选择了未经电子邮件验证的密码。 Bob现在已登录。

  • 合法用户Alice想要为其自己的电子邮件地址“ x @ example”创建一个帐户,执行电子邮件验证并从Firestore中读取。

问题:

  1. Bob注册后,他能否立即读取通过安全规则A的Firestore中的数据?

  2. Bob注册后,他能否立即读取通过安全规则B的Firestore中的数据?

  3. 当Alice尝试注册时,会因为Bob已经使用该电子邮件地址创建了一个帐户而阻止她这样做吗?如果是这样,爱丽丝应该如何注册?

  4. 一旦爱丽丝被注册(我猜您必须强迫她进行密码重置),鲍勃仍会登录吗?如果是这样,他是否可以读取通过安全规则A和B的数据?

1 个答案:

答案 0 :(得分:0)

  1. 是的。但是您可以选择让她发送密码重设电子邮件。既然爱丽丝可以访问邮箱,则可以使用它来重置密码。
  2. Bob将保持登录状态,直到需要刷新其ID令牌,或者直到系统强制刷新为止。此时,他将需要输入他不知道的新密码。