如何解决Firebase SignInWithEmailLink 会话注入
我正在为我的应用程序用户设置一个“SignInWithEmailLink”流程,以便他们在自动登录的同时验证新帐户的电子邮件。然而,在设置它时,我注意到我认为是一个安全漏洞/疏忽/矛盾,并希望得到建议。
在“SignInWithEmailLink”流程的以下文档中,它指出:
为了防止使用登录链接作为意外登录 用户或在非预期设备上,Firebase 身份验证需要用户的 完成登录流程时要提供的电子邮件地址。为了 要成功登录,此电子邮件地址必须与要登录的地址相匹配 登录链接最初是发送的。 [...] 不要通过用户的 重定向 URL 参数中的电子邮件并重新使用它,因为这可能会启用 会话注入
https://firebase.google.com/docs/auth/web/email-link-auth#security_concerns
我可能在这里遗漏了一些东西,但我的理解是,我们不希望恶意用户能够仅通过 URL 来破坏 anthers 帐户。假设我在这里是正确的,那么我想提请注意“actionHandler”文档,特别是关于“ResetPassword”流程。
下图是文档的注释摘录,可在此处找到 - https://firebase.google.com/docs/auth/custom-email-handler
查看建议的流程,如 1、2 和 3 所示的步骤表明,如果仅一个有效的密码重置链接,恶意用户将同时获得用于该帐户的电子邮件地址,以及允许将密码设置为任何已知值。这将允许恶意用户通过标准电子邮件密码登录流程访问帐户。
这两个流程之间的最后一个重要区别是可用的两种不同的链接验证功能。
isSignInWithEmailLink ( emailLink : string ) : boolean
https://firebase.google.com/docs/reference/js/firebase.auth.Auth#issigninwithemaillink
verifyPasswordResetCode ( code : string ) : Promise < string >
https://firebase.google.com/docs/reference/js/firebase.auth.Auth#verifypasswordresetcode
鉴于所有这些信息,我的问题是这并不矛盾,这两个不同的流程之间有什么区别,例如使密码重置安全,在 signInWithEmailLink 上的具体说明不包括电子邮件以防止漏洞?或者这可能是文档中的疏忽或错误?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。