【问题标题】:How secure is in app billing in Android?Android 应用计费的安全性如何?
【发布时间】:2011-11-03 11:53:18
【问题描述】:

我正在开发一款游戏,我想加入一些应用内购买。

我决定将购买的商品存储在数据库中并添加一些检查。但是,还有一个问题:难道不能简单的拆解应用程序,交换响应码(例如USER_CANCELED 与OK),所以每次我打开对话并中止时,我的游戏就认为我购买了该物品?

到目前为止,我确实在我的应用程序上尝试过,但是由于我缺乏使用 baksmali 的经验,所以我没有为我工作。从理论上讲,(很容易)可能吗?如果是的话,你在smali中具体要改变什么,有什么对策?

谢谢!

【问题讨论】:

  • this 你可能会感兴趣

标签: android in-app-purchase decompiling cracking


【解决方案1】:

Android 有一个应用内结算安全指南文档:

https://developer.android.com/google/play/billing/billing_best_practices.html

这个问题总是会出现,答案是没有“真正的解决方案”可以打败所有盗版。但是,有多种技术可以缓解问题并大规模防止盗版。

由应用开发者决定他/她愿意在多大程度上限制盗版。通过混淆和服务器端验证和可撤销性的多个版本是很好的技术,不仅如此可能是矫枉过正。传统观点认为,担心有时间和知识破解应用程序实例的少数人可能并不重要。

【讨论】:

    【解决方案2】:

    只是一个意见:我对android应用程序了解不多,但关于安全范围,您应该决定是否防止破解您的软件或多少。更高的安全性将及时产生更麻烦的应用程序,并导致您的真正客户感觉不好或会偷走他们的时间(因为性能下降)。您将花费时间来保护您的应用程序,而不是让它变得更好、更有用。我建议你也阅读this nice comment。 “如果人们希望你的应用程序被破解,他们会的”

    【讨论】:

    • 我知道,拥有一个“不可破解”的应用程序是不可能 - 我仍然想知道,修改应用内计费会有多容易。因为,在观看了 Krishnabhadra 线程中提到的那个视频之后,我仍然相信,您可以修改应用程序以始终返回 true。是否有关于在网络上进行游戏购买黑客攻击的资源?因为我google了一下,没有找到……
    【解决方案3】:

    如果您反编译、更改代码并将其再次打包为 apk,则需要使用您之前使用的相同密钥对其进行签名 - 否则将无法使用它通过 Play 商店进行应用内购买。

    商店中的商品只能由与您通过控制台上传的应用签名类似的应用访问。

    但是,如果有人完全更改了代码,甚至可以在没有到达商店的情况下模仿该过程。为防止这种情况,您应该通过后端服务器检查购买的合法性。您可能需要查看this 问题以及如何执行此操作的答案。

    【讨论】:

      猜你喜欢
      • 2014-02-27
      • 1970-01-01
      • 2012-12-14
      • 2011-07-29
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多