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

ibi*_*iza 6 security android

我目前正在为Android开发一款益智游戏,我想在完成时拥有以下功能:

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

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

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

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

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

谢谢!

ps嗯,答案不是倾注...如果你想要它的答案,请提升这个问题以获得更多的可见度!

小智 1

好吧,普通用户不太可能超出 /data 分区(应用程序数据),但如果可以的话,请谨慎行事;您可以使用SqlCipher(数据库文件的透明256位AES加密)。

您可以检查,例如:

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

谢谢,穆尼什