Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止未经授权访问我的Firebase实时数据库?_Firebase_Firebase Security - Fatal编程技术网

如何防止未经授权访问我的Firebase实时数据库?

如何防止未经授权访问我的Firebase实时数据库?,firebase,firebase-security,Firebase,Firebase Security,如何防止其他用户通过我的Firebase URL访问我的实时数据库?我必须做些什么才能将其仅保护到我的域?首先,请理解,您无法根据源域保护internet上的任何URL——恶意用户可能只是撒谎。保护源域仅在防止跨站点欺骗攻击(恶意源假装是您的站点并欺骗您的用户代表他们登录)时有用 好消息是,用户从一开始就被禁止从未经授权的域进行身份验证。您可以在Forge中设置授权域: 在浏览器中键入Firebase url(例如) 登录 单击Auth选项卡 将您的域添加到授权请求源列表中 选择要使用的“提供

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

首先,请理解,您无法根据源域保护internet上的任何URL——恶意用户可能只是撒谎。保护源域仅在防止跨站点欺骗攻击(恶意源假装是您的站点并欺骗您的用户代表他们登录)时有用

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

  • 在浏览器中键入Firebase url(例如)
  • 登录
  • 单击Auth选项卡
  • 将您的域添加到授权请求源列表中
  • 选择要使用的“提供程序”,并进行相应配置
现在要保护您的数据,请转到“安全”选项卡并添加安全规则。一个好的起点如下:

{
   "rules": {
       // only authenticated users can read or write to my Firebase
       ".read": "auth !== null",
       ".write": "auth !== null"
   }
}
安全规则是一个大话题。你会想

  • 设置安全规则, 学习资料来源:

  • 使用模拟器(这将使初学者不容易看到键) ,资料来源:

  • 云功能(它将隐藏集合和文档的名称) ,

  • 将API密钥限制为特定网站(这将使人们无法从外部访问您的网站/应用程序)


  • 如果有人知道更多的方法,请告诉我,没有人是完美的。

    我想开发一个用户无需登录即可使用的应用程序。但我担心的是,如果有人浏览我网站的源代码,并获取我的firebase url,然后将其用于自己的读写过程。我已经添加了一个www.google.com作为授权url,但我可以从另一个主机的ip(其中包含我的应用程序文件)向我的firebase写入内容。如上所述,如果没有某种变体的身份验证,您无法阻止任何人向您的firebase(或web上的任何其他内容)写入内容。我认为这类似于rdbms数据库身份验证。谢谢。如果他们实际上是同一个人(即他们有用户名和密码),那么他们从哪里连接又有什么区别呢?使用验证规则和安全性来防止未经授权的写入,不要担心诸如origin.Yes之类的人为/无效约束。我很确定这就是我说的?白名单是为了防止跨站点欺骗,而不是防止请求来源。