Bob*_*Bob 6 firebase firebase-authentication firebase-app-check
Firebase Auth 提供 REST API 来创建/删除/编辑身份验证用户。由于 API 密钥不是私有的,任何人都可以使用该 API。
例如创建新用户的端点是公开可用的,并且据我所知不能不被禁用。
在我看来,这是一个糟糕的情况,因为例如攻击者可以通过此端点创建大量用户,而这些用户对于我们的系统来说不是有效用户。攻击者可能会阻止客户的有效电子邮件地址,从而无法创建有效帐户。
如果攻击者知道用户 ID,他甚至可以删除身份验证用户。
我们添加了用户声明(只能通过管理 API 设置,不能通过公共 API 设置),以确保只有我们创建的用户才可以访问我们的系统,但这意味着我们需要付出很大的努力来定期删除用户通过我们的系统创建。
是否计划通过AppCheck来保护 FirebaseAuth ,以仅允许经过验证的应用程序访问 auth api?
在这一点上,我想说这不太可能,因为与应用程序检查所保护的 API 相比,这种类型的滥用被认为风险较低。
面向公众的 Firebase Auth API 受到速率限制,尤其是 Web API 必须来自您允许的身份验证域。然而,该平台的主要卖点之一是能够处理许多并发用户。
- 每小时可创建 100 个帐户/IP 地址
- 每秒可删除10个账号
- 可以处理整个项目中的公共 API 每秒 1000 个请求、每天 1000 万个请求
使用管理 SDK 可以绕过每个 IP 地址的限制(受到每秒 500 个请求的限制)。如果您预计需求会激增(例如,您提供黑色星期五促销),您还可以通过 Firebase 控制台暂时提高这些限制。
只有用于创建用户的 Firebase Auth API 是“公开的”,但受到上面详述的限制。
编辑、删除、更新用户的详细信息(元数据和帐户本身)都是特权操作 - 您必须经过适当的身份验证才能进行更改。对于从客户端设备连接的用户帐户,您必须在大约 5 分钟内登录才能更新/删除您自己的帐户。使用管理 SDK 时,请求将使用服务帐户的凭据进行身份验证,该凭据授权服务帐户代表用户或系统进行更改。
如果您的系统以这种方式被滥用,您可以联系 Firebase 支持。
| 归档时间: |
|
| 查看次数: |
1036 次 |
| 最近记录: |