【问题标题】:How to secure Firebase Auth at the client side? [duplicate]如何在客户端保护 Firebase 身份验证? [复制]
【发布时间】:2022-01-22 21:06:41
【问题描述】:

假设我有一个非常秘密的网站,仅供有限的人使用,例如我的家人,他们只能登录。我是通过 Firebase Auth 创建帐户的管理员。

然后,有人注意到我的前端代码中的 Firebase 凭据来初始化应用程序。

因此,“黑客”在他的本地主机上初始化了一个应用程序,并使用他的电子邮件地址创建了一个用户。现在他可以登录并can do all this other mentioned methods here 访问我的秘密网站,对吧……?如何预防?

【问题讨论】:

    标签: firebase security firebase-authentication


    【解决方案1】:

    我已经通过云功能创建了一个触发器,它监听用户创建并禁用新用户。

    如果您创建新用户,则需要在 Firebase 控制台中启用该用户。

    功能代码:

    const onCreateHandler = (user: admin.auth.UserRecord, context: functions.EventContext) => {
      if (!user.email) {
        return null;
      }
    
      return admin.auth().updateUser(user.uid, {
        disabled: true,
      });
    };
    
    export const authUserCreatedTrigger = functions.region(functionsRegion).auth.user().onCreate(onCreateHandler);
    

    使用此方法用户/黑客注册后无法登录。

    您还可以记录在 firestore 中创建的用户并向自己发送通知(电子邮件):)

    您还可以实现一些存储在 firestore 或自定义用户声明中的自定义访问逻辑,您的前端可以使用这些逻辑来决定用户可以看到或看不到什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2020-07-20
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多