Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我在安卓应用内计费的安全性方面投入了多少精力?_Android_Security_In App Billing - Fatal编程技术网

Android 我在安卓应用内计费的安全性方面投入了多少精力?

Android 我在安卓应用内计费的安全性方面投入了多少精力?,android,security,in-app-billing,Android,Security,In App Billing,我在Android应用程序中实现了应用内计费。我基本上是按照示例(Dungeon)应用程序进行操作的。到目前为止,它似乎运行良好。我现在需要决定我应该在安全部分投入多少精力 我有一个服务器,可以用来实现Security.java之类的东西。我目前也在使用标准PurchaseDatabase实现 目前,我正在考虑使用特定于设备的密钥加密.db文件,而不使用Security.java 我的想法是,我的应用程序是一个相当利基的应用程序,我不期望它有很多黑客攻击。如果有人努力节省几美元(每件物品只需1美

我在Android应用程序中实现了应用内计费。我基本上是按照示例(Dungeon)应用程序进行操作的。到目前为止,它似乎运行良好。我现在需要决定我应该在安全部分投入多少精力

我有一个服务器,可以用来实现Security.java之类的东西。我目前也在使用标准PurchaseDatabase实现

目前,我正在考虑使用特定于设备的密钥加密.db文件,而不使用Security.java

我的想法是,我的应用程序是一个相当利基的应用程序,我不期望它有很多黑客攻击。如果有人努力节省几美元(每件物品只需1美元),那就这样吧


我想我正在寻找其他人对此的看法…似乎没有100%安全的实现…只是使黑客不值得付出努力的实现。其他人看到过很多应用内购买的黑客行为吗?

你说得对:你不需要实施非常复杂的保护功能,你需要实施需要花费太多时间才能被发现和删除的保护功能。这是谷歌I/O 2011关于减少“利器”技术的视频:我完全推荐。您可能希望尝试的一些技术包括:

  • 使用LVL
  • 模糊代码
  • 从后台线程随机调用LVL
  • 插入与普通代码混合的许可证检查
  • CRC码文件
  • 勤勉:使用JNI中的反射来检查签名
  • 加密核心库/资源并动态加载它们
其中一些技术非常简单,另一些则需要付出不可忽视的努力。最好的建议是要有创意,把支票藏在黑客不希望的地方

另一个重要的一点是,如果您怀疑盗版,请让您的应用程序正常降级。例如,不要抛出“无效许可证”,因为您的许可证检查需要在应用程序启动时访问网络;相反,将“有效期为两个月”的令牌存储在某处,然后随机更新它。在随机数天后检查它(例如,30-60天范围内的随机整数)。客户不会注意到这张支票,很难破解,因为经过很多时间之后,它将不明显,比Cracker愿意在一个应用程序上花费的时间要长得多。

+1获得一个很好的答案。这也是一个很好的答案。