如何正确保护使用应用内购买和本地数据库的应用程序

时间:2012-08-09 19:38:38

标签: android security

我目前正在为Android开发一款益智游戏,我希望在完成时具备以下功能:

  • 免费播放(广告支持),因此需要有效的互联网连接(如果无法展示广告则无法播放)
  • 移除广告和连接检查的应用内购买选项
  • 针对其他内容的应用内购买

但是我意识到有许多问题源于我的要求......

  1. 拥有单一版本并提供通过应用内购买移除广告的选项,而不是在Play商店中拥有2个版本的游戏,这是一个好主意吗?也许最好有两个独立的应用程序,但是,我怎么能在2之间共享数据呢?例如如果用户在免费版本上购买了其他内容,然后决定购买无广告版本,我希望他在免费版中购买的内容也可以在付费版本中使用。

  2. 确保游戏无法“入侵”以免费获取其他内容的最佳做法是什么?我知道新的内容不应该包含在原始应用程序中,并且一旦购买就会单独下载,但是我可以做些什么来防止购买某些内容的用户无法自由地重新发布?毕竟,“下载其他内容”只是联系服务器获取数据,然后将其添加到本地数据库。

  3. 我认为实现“无广告和离线播放”版本(Play商店中没有2个版本)的唯一方法是更新本地数据库中的一个简单字段,但这似乎不一样一个聪明的解决方案,因为一个技术娴熟的用户可以自己切换这一点来解锁无广告版本,防止这种情况的最佳方法是什么?

  4. 谢谢!

    P.S。好吧,答案并没有倾注......如果你想要它的答案,请提出这个问题以获得更多的可见性!

1 个答案:

答案 0 :(得分:1)

普通用户不太可能超额/数据分区(应用程序数据),但如果你能安全地玩;您可以使用SqlCipher(数据库文件的透明256位AES加密)。

您可以查看,例如:

http://sqlcipher.net/sqlcipher-for-android/

谢谢, Munish