Firebase的简单电子邮件和密码登录存在安全漏洞?



Firebase的简单登录功能包括使用电子邮件登录用户的功能;暗语

这个功能非常有用,而且使用起来非常简单。然而,在我尝试将其实现到一个仅限客户端的web应用程序中时,我似乎发现了一个可以由Firebase轻松解决的问题。

然而,我很少相信自己,我总是认为自己是个白痴。所以我决定把它作为一个问题发布在这里,而不是直接联系Firebase,这样聪明的人就可以纠正我,并向我建议聪明的方法来处理我遇到的看似问题!

我的想法是:

Firebase的电子邮件简单登录没有电子邮件确认功能,这是一个大问题。这意味着用户可以创建电子邮件&密码帐户,而不实际控制电子邮件地址。

这是一个常见的痛点,最普遍的解决方案似乎是用随机密码创建用户帐户,并立即向他们发送一封密码重置电子邮件,这样他们就可以在控制电子邮件的情况下设置自己的密码。

然而,由于应用程序是客户端的,因此即使是随机密码分配也必须在客户端完成。此外,这并不能阻止某人使用javascript命令简单地为自己创建一个定义了的用户帐户。(即用户仍然可以使用自己不拥有的电子邮件地址创建帐户。)

电子邮件确认对于构建一个安全的客户端网络应用程序至关重要,我提出了一个简单的解决方案:

Firebase可以在简单登录面板中有一个可选设置,当启用时,允许在没有工作密码的情况下创建用户。这样,用户就不能使用javascript代码使用他人的电子邮件创建自己的帐户,开发人员可以通过创建一个没有工作密码的用户,并向他们发送一封密码重置电子邮件,只允许具有有效电子邮件地址的帐户,来真正制作一个安全的客户端应用程序。

I、 在我有限的理解中,我相信这对Firebase来说很容易实现,但对开发人员来说非常重要。然而,如果已经有办法将帐户限制在有效的电子邮件地址内,我也不会感到惊讶,我只是觉得很傻。

请开导我!

我认为这里没有安全风险:Firebase只是要求用户输入一个电子邮件地址来唯一识别他们。他们可以很容易地要求用户名,但这会导致更多的用户名冲突。

如果您的应用程序希望通过电子邮件向该地址的用户发送电子邮件,则应验证该电子邮件地址。这篇博客文章描述了一个人是如何做到这一点的。

我的Firebase应用程序都不发送电子邮件,所以我真的不在乎电子邮件地址是否有效。只是他们一致地识别同一个用户,据我所知,他们确实这样做了

也就是说:如果Firebase可以按照你的建议验证电子邮件地址,那就太好了。从谷歌群组的讨论来看,这似乎已经在他们的雷达上了。但正如我一开始所说:我不认为这会增加Firebase的简单登录的安全性。

相关内容

最新更新