Firebase 电子邮件身份验证示例安全吗?

Is Firebase E-mail Auth example secure?

我正在尝试 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;
        }
...

什么机制阻止某人在控制台中打开代码、删除检查并在空字符串下注册为 e-mail/password?

搜索 firebase 安全性只告诉我一切都是在 HTTPS 中进行的,并且服务器端规则是可定制的,以防止任何未登录的人编辑数据库,但是这个呢?

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

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

{code: "auth/weak-password", message: "The password must be 6 characters long or more."}

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

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

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