有人可以帮我解答 firebase 安全问题吗?
这就是我试图弄清楚的:
我知道要让客户端与我的 firebase 应用程序交互,需要配置和firebase.initializeApp(config)
将公开,每个使用客户端的人都可以在浏览器开发者控制台中看到它。
我也知道这很好,因为我可以使用安全规则和权限来保护数据。
但是,如果有人复制了我所有的客户端代码(包括配置)并构建了很多克隆站点,那么他们就可以随心所欲地使用我的 firebase 数据库,对吗?
在这种情况下,我应该将配置(api 密钥)隐藏到后端(例如云函数之类的)吗?
谢谢...
我以前也想过类似的事情,然后发现这篇方便的文章 https://javebratt.com/hide-firebase-api/经过一番搜索后。 (这篇文章本身是关于移动开发的,但有一节讨论了这个具体问题)。相关部分的标题是“按域和包划分的 API 阻塞"
这篇文章比我解释得更好,以防万一链接失效,我将复制下面的文本以供将来的查看者参考。这是 Jorge Vergara 在他的网站上写的https://javebratt.com/hide-firebase-api/ https://javebratt.com/hide-firebase-api/最后更新于 2018 年 7 月 20 日。
另一件很酷的事情是,如果你转到你的 Google API 帐户,你会看到
您的所有 Firebase 项目,选择一个,然后在“凭据”选项卡中
选择您的 API 密钥。
如果你从来没有搞过它,它应该被称为类似的东西
浏览器密钥(由Google服务自动创建),打开它,你会发现
密钥限制选项:
该键不受限制。为了防止未经授权的使用和配额盗窃,
限制你的钥匙。密钥限制可让您指定哪些网站、IP
地址或应用程序可以使用此密钥。
您可以在其中选择 HTTP 引荐来源网址(网站)并添加您的域。
这意味着 Firebase 数据库将只接受以下请求
人们从该领域写作。
或者 Android 应用程序和 iOS 应用程序,您可以在其中添加包名称和
指纹。
例如:
如果您构建 myawesomeapp.com 并在 HTTP 引荐来源网址中添加域
(网站)部分,任何尝试从不同的连接的攻击者
域将收到错误,并且这些请求将永远不会到达
数据库。
他提供的用于访问您的 Google API 帐户的链接是:https://console.developers.google.com/apis/credentials https://console.developers.google.com/apis/credentials
如果您点击显示“浏览器密钥(由 Google 服务自动创建)“那么你应该看到”申请限制“ 位于底部的部分,您可以在其中选择”HTTP 引荐来源网址“...单击它可以让您输入批准的域。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)