rai*_*r00 4 java security android firebase google-play-services
我最近刚刚开始使用 Google 的firebase作为 android 应用程序数据的在线集中式数据库(从使用本地 sqlite 迁移)。
作为 firebase 的新手,我想问一下 android 的 firebase 在线数据库有多安全?
从以下线程中阅读,是否真的可以访问 google-services.json 的任何人都可以插入和修改我的 firebase 数据库中的在线数据?
我所关注的人谁怎样才能获得一个反编译的apk的配置文件(谷歌services.json)可以使用它在自己的Android项目,比如,创建具有类似的包名的Android应用程序,并按下恶意数据或删除从我火力数据库。
如果有新的聪明的解决方法可以使在线数据库更安全,您能否提供建议?
到目前为止,为了增加安全性,我已尝试:
{
"rules": {
".read": "auth != null",
".write": "auth != null"
}
}Run Code Online (Sandbox Code Playgroud)
将 firebase 电子邮件/密码身份验证添加到我的应用程序以控制登录。
但是,我发现即使没有身份验证功能,新创建的应用程序仍然可以将数据推送和修改到在线 firebase 数据库中,只需使用“被黑”的 google-services.json。
感谢您的意见和建议!
欢迎享受有效的两层系统带来的乐趣。您可以采取多种措施来保护您的数据——但不是免费的。
首先是一些事实:
有一些反措施可以提高攻击者的门槛,但坚定的(或幸运的)攻击者可以获得访问权限。如果他有访问权限,则很难防止他造成损害,因为例如更改数据库凭据也会强制您的所有用户进行更新。
你能做的是
决定保护数据是不值得的努力和你/你的管理可以用风险住(但后来你有一个decission确实做到了)
像您一样使用firebase ACL。要创建用户特定的“仓库”,请使用每个用户节点(见下文,这里不会呈现代码)。配置发生在控制台中。
在服务器上构建业务逻辑并将所有凭据放在那里。这将确保您拥有完全控制权
防止应用程序以明文形式读取数据。使用公钥算法来加密数据。将私钥保存在必须读取数据的系统上。然后应用程序无法读取纯数据(但仍然例如找出您拥有多少以及变化率是多少)。这也不会阻止数据的操纵或删除。
示例 ACL:
// These rules grant access to a node matching the authenticated
// user's ID from the Firebase auth token
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4475 次 |
| 最近记录: |