【发布时间】:2022-01-01 00:27:57
【问题描述】:
Firebase 身份验证为 create/delete/edit 身份验证用户提供 REST API。由于 API 密钥不是私有的,因此任何人都可以使用该 API。
端点,例如创建新用户是公开可用的,不能禁用 AFAIK。
在我看来这是一个糟糕的情况,例如攻击者可以通过此端点创建大量用户,这些用户对我们的系统来说不是有效用户。攻击者可以阻止无法创建有效帐户的客户的有效电子邮件地址。
如果攻击者知道用户 ID,他甚至可以删除授权用户。
我们添加了用户声明(只能通过 Admin API 而不能通过公共 API 设置)以确保只有我们创建的用户才能访问我们的系统,但这意味着我们需要付出很多努力才能定期删除不是通过我们的系统创建的用户。
是否计划通过AppCheck 保护 FirebaseAuth 以仅允许经过验证的应用访问 auth api?
【问题讨论】:
-
"如果攻击者知道用户 ID,他甚至可以删除授权用户。"要删除用户帐户,您需要输入该用户的凭据,或者对项目具有管理访问权限。知道他们的 UID 还不够好。另见:stackoverflow.com/questions/37221760/…
标签: firebase firebase-authentication firebase-app-check