如何防止其他用户通过Firebase URL访问我的实时数据库?我该怎么做才能将其仅保护到我的域?

#1 楼

首先,请了解您无法根据来源域来保护Internet上的任何URL,恶意用户只会撒谎。保护原始域仅在防止跨站点欺骗攻击(恶意源假装成您的站点并欺骗您的用户代表他们登录)时有用。

好消息是用户从一开始就已经阻止了从未经授权的域进行身份验证。您可以在Forge中设置授权域:


在浏览器中输入Firebase网址(例如https://INSTANCE.firebaseio.com/)
登录
点击“身份验证”标签
将您的域添加到“授权请求来源”列表中。
选择要使用的“提供商”并进行相应的配置

现在可以保护您的数据,您将转到“安全性”标签并添加安全性规则。良好的起点如下:

{
   "rules": {
       // only authenticated users can read or write to my Firebase
       ".read": "auth !== null",
       ".write": "auth !== null"
   }
}


安全规则是一个大话题。您将希望通过阅读概述并观看此视频来起步

评论


我想开发一个用户无需登录即可使用的应用程序。但是我担心如果有人浏览我的网站的源代码,并获得公开的firebase URL,然后将其用于自己的读写过程。我已经添加了www.google.com作为授权的URL,但是我可以从其他具有我的应用程序文件的主机的IP写入Firebase。

– Serhat Koroglu
13年8月2日在6:06

如前所述,如果不对某些变体进行身份验证,则不能阻止任何人写入Firebase(或网络上的任何其他内容)。

–加藤
2013年8月2日14:11



我看到这就像是rdbms数据库身份验证。谢谢。

– Serhat Koroglu
13年8月2日在18:17

如果他们实际上是同一个人(即,他们具有用户名和密码),那么从何处进行连接有什么区别?使用验证规则和安全性来防止未经授权的写入,并且不要担心人为/无效的约束(例如来源)。

–加藤
16年2月15日在21:03

是。我很确定那正是我所说的吗?列入白名单是为了防止跨站点欺骗,而不是防止请求来源。

–加藤
16年4月29日在19:00