auth !== null 有多安全?火力地堡

How safe is auth !== null? Firebase

我使用 Firebase 已经有一段时间了,但直到现在我才决定真正研究一下安全规则。

我的问题是,"auth !== null" 安全吗?是的,我知道这意味着只有经过身份验证的用户才能访问数据,但是通过身份验证有多容易?有人可以注册该应用程序,然后使用这些凭据将 GET 请求直接发送到我的数据库中吗?

就像我说的,我是安全规则的新手,如果这是一个明显的问题,我很抱歉。

这是我的安全规则:

{
  "rules": {
    "Users": {
      "$user_id": {
        ".write": "$user_id === auth.uid",  
        ".read" : "auth !== null",
        "shoofers" : {
          ".write" : "auth != null"
        }
      }
    }
  }
}

谢谢!

尼尔

您可以在登录身份验证后或未经身份验证的情况下授予用户对数据库的访问权限。 但是允许用户通过身份验证访问您的数据库是好的和安全的

身份验证安全规则是

  {
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

并且没有认证

     {
  "rules": {
    ".read": "auth == null",
    ".write": "auth == null"
  }
}

用户可以通过匿名、email/password、各种 OAuth 提供商和 phone 数字登录进行身份验证。您可以enable/disable其中任何一个。上面的根规则允许通过任何规定的机制对任何经过身份验证的用户进行只读访问,并允许指定用户对其自己的数据进行写访问。伪造登录非常困难。数据库将始终检查请求是否具有 ID 令牌(当 auth 不为空时)。 ID 令牌使用 public-key 密码术,没有私钥就很难伪造。

我看到的是,当您从 firebase 控制台使用 'simulator' 并通过提供一些随机字符串作为 uid 进行虚假身份验证时,firebase 不会检查它并允许访问。所以 auth!=null 是不够的,因为即使 uid=1.

它也会进行身份验证