有人可以从我的apk获取Firebase凭据并使用它们吗?

时间:2016-08-30 13:45:46

标签: firebase firebase-realtime-database firebase-security

其他人可以从我的APK获取Firebase凭据并使用它们吗?这是通过为Android添加SHA-1密钥来阻止的吗?

如果它被阻止,我需要什么安全规则,因为只有我的应用程序和我的SHA-1的代码才可以操作数据库?

如果没有阻止,只要他的请求符合安全规则,其他人是否可以使用我的Firebase数据库? (写第二个客户,实际上不能做坏事,但根本不应该被允许。)

我不确定如何考虑安全规则:

A)保护数据不被坏人+ B访问和操纵?

B)只是一组规则将数据保持在某种状态并阻止我的软件执行无效的数据库请求?

3 个答案:

答案 0 :(得分:1)

我们不会将json文件中的实时数据库密码(或任何其他“秘密”材料)发送到您的应用程序中。该文件只包含资源标识符,使我们能够知道哪些资源(数据库,存储桶,分析等)可以正确地进行身份验证(我们将Firebase Authentication用于这些目的),并且我们处理服务器端授权以确保用户已正确登录。

如果您正确授权您的请求(例如,使用Firebase Realtime Database Rules),您的数据是安全的!

我建议观看我们的I / O会谈中的The Key to Firebase Security,其中详细讨论了它的工作原理。

答案 1 :(得分:1)

可以通过REST API或任何客户端库访问Firebase数据库。关于客户是否可以做某事的决定完全基于规则。

您甚至可以在Web浏览器中访问数据库URL,并通过将.json放在最后来查看JSON响应,例如: https://[YOUR_PROJECT_ID].firebaseio.com/.json

所以答案肯定是B!新Firebase项目中的默认规则是对数据库的读取和写入需要auth,但您可以将它们配置为提供所需的任何级别的保护。

看看Database Rules quickstart,看看你能做些什么!

答案 2 :(得分:0)

firebaser 在这里

借助名为 Firebase App Check 的新功能,现在实际上可以将对实时数据库的调用限制为仅来自在 Firebase 项目中注册的 iOS、Android 和 Web 应用的调用。

您通常希望将其与 Mike 和 Ian 在他们的回答中描述的基于用户身份验证的安全性结合起来,以便您对确实使用您的应用的滥用用户有另一个保护。 >