Android应用程序的升级-其重要性如何(尤其是与应用程序内支付相关的)

Android应用程序的升级-其重要性如何(尤其是与应用程序内支付相关的),android,security,in-app-purchase,obfuscation,proguard,Android,Security,In App Purchase,Obfuscation,Proguard,我意识到这是一个很难回答的问题,但我希望对模糊处理和公钥安全等有更深入了解的人能够提供帮助——当然,问题不仅仅是应用程序内购买,但这是我个人的兴趣所在 我曾经犯过一个错误,在我的一个(免费)Android应用程序上使用ProGuard——我说这是错误的,因为用户报告的跟踪问题变成了一场彻头彻尾的噩梦,我很快意识到我一无所获,所以我放弃了它 我现在已经准备好了付费应用和应用内购买的应用(使用亚马逊和谷歌计费系统),并且似乎强烈建议使用Proguard(或类似的替代方案)——但在我回到噩梦之前,它真

我意识到这是一个很难回答的问题,但我希望对模糊处理和公钥安全等有更深入了解的人能够提供帮助——当然,问题不仅仅是应用程序内购买,但这是我个人的兴趣所在

我曾经犯过一个错误,在我的一个(免费)Android应用程序上使用ProGuard——我说这是错误的,因为用户报告的跟踪问题变成了一场彻头彻尾的噩梦,我很快意识到我一无所获,所以我放弃了它

我现在已经准备好了付费应用和应用内购买的应用(使用亚马逊和谷歌计费系统),并且似乎强烈建议使用Proguard(或类似的替代方案)——但在我回到噩梦之前,它真的是必要的吗

如果人们想对我的代码进行反向工程,以“免费”删除广告或获取应用程序,那么我确信他们会以某种方式这样做——但我显然不想让计费系统和人们的个人凭证这样的东西变得不安全

Google Play In-App账单谈到了混淆诸如应用内产品公钥之类的东西(通过将它们存储在单独的位中以使更改变得更困难)——我想不预先防范会进一步削弱这一点——但这只是我的应用还是它对其他人的应用/客户自身的个人安全有更广泛的影响

基本上-我一点也不关心海盗,因为他们会做他们所做的事,我当然不想让自己的工作只是为了这个目的,但我也不想削弱其他用户的安全


任何人对此都有足够的了解来评论???

ProGuard只会帮助防止盗版;它不会影响个人信息的安全

设计良好的支付处理系统(面向公众)即使有人入侵他们的客户端(即你的应用程序),也能保持安全。有人能做的最多的事情就是不用付费就可以访问付费内容,但黑客无法通过谷歌或亚马逊支付系统危害他人的应用程序

因此,向应用程序添加谷歌或亚马逊支付处理不会影响应用程序的安全性


然而,如果黑客通过常规手段入侵他人的手机,他们可能能够访问存储在你的应用程序中的支付信息。但是ProGuard只保护代码,而不保护个人信息,因此它也无法阻止此类黑客行为。

一般来说,您应该编写支付处理系统,这样被泄露的客户就不会泄露整个系统。这是一个相当模糊的说法->我应该还是支付系统的供应商应该??我要提醒你的是,它没有说你“必须”使用模糊处理——只是鼓励你使用模糊处理……在不熟悉这两个系统的细节的情况下,我假设公钥被泄露不会导致问题,它只是意味着我可以制作一个应用程序,在这个应用程序中,购买资金最终会进入你的帐户。个人客户数据之类的东西应该存储在一个安全的服务器上,使用SSL等标准方法对通信进行加密。如果有人的手机被泄露,并且他们丢失了“他们的”个人数据,你对此无能为力,只需确保这不会影响其他人。我假设更改密钥会导致从我的应用程序购买的物品被记入其他人的帐户(他们只需创建一个具有相同SKU的应用程序进行销售,然后吞噬我的现金)-如果我有一百万个客户,我会担心的-但我不:)约翰,进一步澄清一下-更改密钥只会允许他们模拟谷歌服务器(到你的特定应用程序),这样他们就可以伪造IAP签名,从而盗版IAP。你所描述的威胁(有人通过从另一个帐户发布盗版应用程序窃取你的信用)是不太可能的,因为(a)人们通常不会为盗版应用程序中的IAP付费,(b)这会打开盗版者的真实身份,让潜在的犯罪调查。是的,这只是混淆。如果您反编译它,您将得到实际的源代码,当然是无意义的类、方法和变量名。尽管如此,它仍然可读、可搜索和可用。一个答案和一个后续评论非常有用-谢谢!!