我正在使用 Firebase 做一个小项目,在测试时我发现我可以从任何服务器向我的 Firebase 数据库发出 cURL 请求(在在线 php 测试仪上测试),所以我认为这是我项目的安全漏洞我一直在寻找一种方法来为 cURL 请求添加某种密码,但我一无所获,至少我无法理解。我知道 firebase 有规则来管理谁可以读取或写入我的数据库,但我没有找到可以通过服务器过滤请求或只允许将特殊密码作为参数发送的请求的东西。所以我的问题是,是否有一种方法可以在我的项目中使用类似的方法,因此只有为我发出的 cURL 请求才有效。这是我的 cURL 请求之一,以防它有助于解决我的问题。$url = "https://mydatabase.firebaseio.com/profile/messages/".$_COOKIE['cookiename'].".json"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);在此先感谢您帮助我。更新:我发现了这个,我想这可能是我需要的东西,但我错过了我告诉数据库请求访问令牌的部分。https://firebase.google.com/docs/database/rest/auth
2 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
一种解决方案是使用Firebase Auth REST API。
特别是,“您可以通过向 Auth verifyPassword 端点发出 HTTP POST 请求来使用电子邮件和密码登录用户”,请参见此处。
然后,您可以在 Firebase 安全规则中使用用户的 uid,以保护您的数据库。
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
您应该阅读并理解REST API 的文档。如果您想绕过通常适用于网络和移动用户的安全规则,您需要为有权访问您的数据库的服务帐户生成一个 OAuth 令牌,并在您的请求中使用它。
如果您不想公开访问您的数据库,则必须设置安全规则来限制它。要停止所有公共访问,您的规则应该是:
{
"rules": {
".read": false,
".write": false
}
}
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消