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

时间:2014-10-21 18:12:25

标签: email login firebase firebase-security firebasesimplelogin

Firebase的简单登录功能包括ability to log users in with Email & Password.

此功能非常有用,使用起来非常简单。但是,在我尝试将其实现为仅限客户端的Web应用程序时,我似乎已经确定了Firebase可以轻松解决的问题。

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

以下是我的想法:

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

这是一个常见的痛点,最普遍的解决方案似乎是创建一个随机密码的用户帐户,并立即向他们发送密码重置电子邮件,以便他们可以设置自己的密码,当且仅当他们有控制权电子邮件。

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

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

Firebase可以在简单登录信息中心中设置可选设置,启用后,允许在没有工作密码的情况下创建用户。这样,用户就无法使用javascript代码通过其他人的电子邮件创建自己的帐户,开发人员可以通过创建没有工作密码的用户真正建立安全的客户端应用程序,并向他们发送密码重置电子邮件,只允许拥有有效电子邮件地址的帐户。

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

请赐教!

1 个答案:

答案 0 :(得分:-1)

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

如果您的应用程序想要通过该地址向用户发送电子邮件,则应验证该电子邮件地址。 This blog post描述了一个人如何做到这一点。

我的Firebase应用程序都没有发送电子邮件,因此我并不关心电子邮件地址是否有效。只是他们始终如一地识别同一个用户,据我所知 - 他们这样做。

说:如果Firebase可以选择按照您的建议验证电子邮件地址,那确实很好。来自this discussion on Google Groups已经出现在他们的雷达上。但正如我在开始时所说:我不认为这会增加Firebase的简单登录的安全性。