Firebase电子邮件Auth示例是否安全?

时间:2016-06-23 12:41:24

标签: javascript security firebase firebase-authentication

我正在尝试使用Firebase的JS SDK,当然,我选择了提供的示例并开始潜入。

The example code用于登录电子邮件,在Firebase上托管。

让我感到惊讶的是,所有密码合规都是客户端的:

...
    function toggleSignIn() {
      if (firebase.auth().currentUser) {
        // [START signout]
        firebase.auth().signOut();
        // [END signout]
      } else {
        var email = document.getElementById('email').value;
        var password = document.getElementById('password').value;
        if (email.length < 4) {
          alert('Please enter an email address.');
          return;
        }
        if (password.length < 4) {
          alert('Please enter a password.');
          return;
        }
...

什么机制阻止有人在控制台中打开代码,删除支票,并在空字符串下注册为电子邮件/密码?

搜索firebase安全性只告诉我所有内容都是通过HTTPS进行的,服务器端规则是可自定义的,以防止任何未登录的人编辑数据库,但是这个呢?

1 个答案:

答案 0 :(得分:4)

您链接的示例代码来自Firebase email+password authentication provider的文档。我建议也阅读文档页面,而不是只是单独的示例代码。

当我尝试使用短密码(123)创建用户时,Firebase身份验证服务器会响应:

  

{code:“auth / weak-password”,消息:“密码长度必须为6个字符或更长。”}

如您所见,服务器也会验证密码的强度。

在客户端和服务器端执行验证是很常见的。

  • 必须在服务器上执行验证以确保它们不会被攻击,如您所说。
  • 通过验证客户端的值,您可以确保更好的用户体验。在此示例中:如果用户输入无效的电子邮件地址,您可以防止需要往返服务器。