我正在为所有数据存储构建一个使用Firebase的iOS应用程序。用户创建一个帐户并使用密码和电子邮件登录。出于安全原因,我想限制登录,或者至少将读取和写入权限限制在应用程序中。我不希望“任何人”可以创建帐户并访问数据,除非他们正在使用该应用程序。Firebase - 只允许使用密码和电子邮件登录应用程序
据我所知,只要他们登录,如果他们找到我的Firebase数据库的URL,任何人都可以访问这些数据。这对我来说似乎是一个很大的安全风险。
我当然实现了安全规则,但登录的用户仍然可以在不同位置读取和写入数据到数据库,所以基本上他们可以使用Javascript API连接我的Firebase数据库,然后读写?任何人都可以创建用户,只要他们知道我的数据库的URL?
有没有一些方法可以防止这种情况,比如在使用电子邮件和密码登录时使用自定义令牌?
“要创建的用户,你还需要有一个有效的原产地,你在应用信息中心指定。这意味着,不只是你的网址的人可以开始创建用户。”但是这似乎只适用于第三方认证?他们可能会创建自己的iOS应用并将其挂接到我的Firebase数据库。 – andlin
我已经实现了$ other规则,但它们仍然可以写入允许的节点/密钥。尽管我在我的规则(如.isNumber().isString()等)中进行了基本验证,但我的大部分数据验证都是在应用程序中完成的,他们可以规避他们是否不使用应用程序 – andlin
Origin still still适用于电子邮件和密码,即使他们不使用应用程序,验证也能正常工作,因为服务器上存在安全问题 –