如何防止未经授权访问Firebase数据库?

Ser*_*glu 45 firebase firebase-security

如何阻止其他用户通过Firebase网址访问我的Firebase数据库?我该怎么做才能将其保护到我的域名?

Kat*_*ato 42

首先,要了解您无法根据原始域保护互联网上的任何URL - 恶意用户可以简单地撒谎.保护原始域仅用于防止跨站点欺骗攻击(恶意源伪装成您的站点并欺骗您的用户以代表他们登录).

好消息是,用户已经无法从一开始就对未经授权的域进行身份验证.您可以在Forge中设置授权域名:

  • 在浏览器中输入您的Firebase网址(例如https://INSTANCE.firebaseio.com/)
  • 登录
  • 单击"验证"选项卡
  • 将您的域添加到授权请求源列表中
  • 选择要使用的"提供者"并进行相应配置

现在,为了保护您的数据,您将转到安全选项卡并添加安全规则.一个很好的起点如下:

{
   "rules": {
       // only authenticated users can read or write to my Firebase
       ".read": "auth !== null",
       ".write": "auth !== null"
   }
}
Run Code Online (Sandbox Code Playgroud)

安全规则是一个很大的主题.您将希望通过阅读概述并观看此视频来加快速度

  • 我想开发一个用户无需登录即可使用的应用程序.但我担心如果有人浏览我的网站的源代码,并获得公开写的firebase网址,然后将其用于自己的读写过程.我已将www.google.com添加为授权网址,但我可以从其他主机的ip写入我的firebase,其中包含我的应用文件. (13认同)
  • 如上所述,如果不对某些变体进行身份验证,则无法阻止任何人写入您的Firebase(或网络上的任何其他内容). (6认同)
  • 如果他们实际上是同一个人(即他们有用户名和密码)那么他们从哪里连接起来会有什么不同?使用验证规则和安全性来防止未经授权的写入,并且不会涉及原始的人为/无效约束. (3认同)
  • 我看到这就像 rdbms 数据库身份验证。谢谢你。 (2认同)