我正在努力了解Firebase中的安全性以及如何正确实施
我有这个(默认)用于开发
{
"rules": {
".read": true,
".write": true
}
}
the docs say 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"
}
}
}
}
甚至如何运作?
如果将所有内容的read / write设置为true,那么任何下载firebase npm软件包并知道如何将几行javascript摩擦在一起的人都可以访问您的数据库。
您可能已经编写了一个网站,要求它在运行访问数据库的代码之前要求登录,但是其他人可以编写自己的网站或没有此检查功能的脚本。必须在服务器端实施安全性,这是使用firebase安全规则完成的。