在我的Android应用程序中,我有一个想法,即在数据库中存储一些串行密钥。如果用户输入正确的密钥,他将获得完整版的应用程序,并且在服务器上禁用该密钥以避免多次使用相同的密钥,否则他可以在没有密钥的情况下在Google Play中购买应用程序。
为此,我想使用Firebase数据库,但在阅读之后我有些疑惑
Firebase实时数据库
使用我们的NoSQL云数据库存储和同步数据。数据会在所有客户端实时同步,并在您的应用离线时保持可用状态。
这是否意味着firebase会将所有可用密钥复制到所有应用程序用户的表中,而某些智能用户可以通过手机从该副本中读取列表?
答案 0 :(得分:4)
并非所有数据都会自动复制到所有客户端。该客户端仅接收客户端订阅的数据。
您可以通过Firebase's server-side security rules控制每个客户可以看到哪些数据。例如,您通常希望ensure that each user can only read their own data。
答案 1 :(得分:2)
存储超级敏感数据(如社会安全号码或信用卡号码)可能不是一个好主意,但如果您看到https://firebase.google.com/docs/database/security/可以看到,您可以控制对数据的访问权限,&使用验证,特别是因为如果密钥被泄露,你可以重新生成密钥,这不是最糟糕的选择。如果您查看https://firebase.google.com/docs/database/security/user-security,您可以看到,可以使用基于智能手机的客户端编写使用谷歌驱动器的应用程序。
答案 2 :(得分:0)
就个人而言,答案是否定的。您可能想要考虑Google Play Subscriptions and In-App Purchases。
如果你真的需要:
信用卡详细信息和到期日应合并为一个哈希值。
只加密所有内容。
禁止列表比批准密钥列表更好。最终你必须创建更多的密钥,并且更容易维护一个禁用密钥列表。