【发布时间】:2015-10-01 00:00:53
【问题描述】:
我有一个 Xamarin.Forms 应用程序,它使用本地 SqLite 数据库作为其数据源。数据是专有的,所以我想保护它,这样如果有人可以访问数据库文件,他们就必须对其进行解密才能访问数据。
我还想限制用户可以对数据库进行的查询次数,以便在某个时候他们必须购买使用更多数据的能力(应用内购买)。
我想尽可能避免拨打网络电话,以尽量减少对用户数据计划的影响,并让应用在连接不佳或没有连接的情况下正常运行。所以,我希望将数据存储在本地数据库中(可能在 SqlLite 中)。
我很好奇不同的人会如何解决这个问题来保护数据,同时最大限度地减少网络使用。
这是我的想法(如果可能的话):
1) 让用户下载/安装应用程序。
2) 首次加载时,应用会根据设备 ID 和用户当前的购买信息上传密钥。然后它将下载已使用上传的密钥加密的 SqlLite 数据库文件。
3) 当用户达到他们的查询限制时,数据库文件被删除。如果他们购买更多数据,则会上传新密钥并下载新的加密数据库以供使用。
想法?有没有更好的办法?
【问题讨论】:
-
好问题,让我们看看其他人会怎么说,如果数据库存储在本地限制查询或删除数据库并没有多大帮助,我认为用户可以找到一种无需访问数据库的方法打开应用但解密整个数据库就足够了