使 firebase 的 sendPasswordResetEmail 更安全

Pau*_*lie 2 firebase firebase-authentication

在使用包含身份验证的 firebase 的网站上,我正在实现“忘记密码”功能。

sendPasswordResetEmail()如果用户提供的电子邮件没有与其关联的帐户,则返回状态为 400。如果电子邮件确实有帐户,则返回 200。

这意味着攻击者可以不断猜测电子邮件,直到得到 200。然后他们就知道有效的电子邮件。然后他们就可以开始猜测它的密码。

有没有办法sendPasswordResetEmail()永远返回200?无论输入的电子邮件是好还是坏,我希望唯一的回复是“检查您的电子邮件中是否有重置链接”。如果电子邮件无效,那么 firebase 应该悄悄地不发送电子邮件。

或者是否有其他机制可以提高安全性?

Fra*_*len 9

火力战士在这里

从客户端 SDK 到 Firebase 身份验证的 API 调用受到速率限制,以降低此类字典攻击的风险。我们还刚刚推出了新的配置选项,允许您启用电子邮件枚举保护,例如INVALID_LOGIN_CREDENTIALS无论错误类型如何始终返回。

如果您怀疑您的项目正在主动发现此类攻击,请联系 Firebase 支持人员,以便他们可以根据需要进行调查并调整配额。