如何在Firebase中正确实施安全性?我

时间:2020-05-18 05:31:40

标签: javascript firebase authentication

我正在努力了解Firebase中的安全性以及如何正确实现它

我有这个(默认)用于开发

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

文档说These rules give anyone, even people who are not users of your app, read and write access to your database

但是如何?我已经在我的应用程序中内置了专用路由(使用react-router),因此除非用户登录,否则他们将无法访问所有专用路由。任何包含提交/提取数据的数据都在私有路线后面

所以我的问题是,为什么我需要使用数据库规则来保护数据?考虑到除非登录,否则用户将无法添加/修改数据。(他们只能在我的应用程序中使用Google登录),因此他们需要知道其他用户的Google密码才能访问我的应用程序。在这一点上,我无论如何也无法防御。并且显然每个用户都有一个UID,但是它在firebase的auth DB中是安全的,所以我正在努力查看这样做的好处是什么?

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    }
  }
}

,甚至它是如何工作的?

1 个答案:

答案 0 :(得分:0)

如果所有内容的read / write都设置为true,那么任何下载firebase npm软件包并知道如何将几行javascript摩擦在一起的人都可以访问您的数据库。

您可能已经编写了一个网站,要求它在运行访问数据库的代码之前要求登录,但是其他人可以编写自己的网站或不进行此检查的脚本。必须在服务器端实施安全性,这是使用firebase安全规则完成的。