安卓应用内支付安全问题

标签 android security billing in-app

我计划在用户付款后使用应用内结算来启用某些功能。 我想执行以下步骤:

  1. 按照 google 示例在其上添加应用内购买。
  2. 用户付费后,在私有(private) SharedPreferences 中添加一个 bool 标志。
  3. 以后不再检查用户是否付费。

我想了解更多关于应用内支付的安全性。我的问题是:

  1. 对于 android 许可库来说,这是一个简单的破解(只需下载一个程序并执行,完成),应用内付费是否也有类似的问题?
  2. 私有(private) sharedPrefences 是否足够安全?散列 bool 变量似乎没有用?
  3. 破解apk文件容易吗,比如反编译apk,找到 bool 逻辑1>0,即常为真,然后重新编译apk?

我发现有 AndroidBillingLibrary 可以轻松实现,但它已经过时了。那有什么好的选择吗?

最佳答案

不要按原样使用广泛可用的示例代码(它通常也有错误),重新编写、增强和自定义您的应用程序。

像往常一样,在获得 root 权限的设备上,用户可以编辑任何文件。因此,他们可以通过更改(或从另一台设备复制)应用程序的首选项来启用您的高级功能。您可以通过使用特定于设备的 key (派生自 ANDROID_ID、IMEI、MAC 地址或它们的组合)混淆首选项来增加难度。

反编译始终是可能的,您可以混淆您的许可证检查逻辑,让想成为破解者的人更难反编译。专注的人会在一段时间后找到解决方法,你只能让他们慢下来。

关于安卓应用内支付安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21544595/

相关文章:

c# - 使用 C# 安全地连接到 AWS MySQL 数据库

android - com.android.vending.billing.PURCHASES_UPDATED 什么时候广播?

java - 无法在 Android 搜索小部件中传递搜索变量

Android 工具看不到我的单元测试

asp.net - 如何使用 Windows 集成安全 : Elmah ignores my settings 在 ASP.Net MVC 4 上保护 Elmah

python - 寻找*现有* Python 模块来确定财政月份

Azure 使用成本 - 困惑

android - 如何在 android 中以 html 格式添加新行?

Android - fragment 中的自定义 View 在 onResume() 中不起作用

asp.net - 由于 FIPS 140 安全策略,ASPX 页面失败