gpt4 book ai didi

android - 在 BillingService 模块中,需要修改什么来增加安全性?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:32:10 24 4
gpt4 key购买 nike

类(class)评论BillingService建议:

You should modify and obfuscate this code before using it.

好的,但是必须修改什么

类名?用于记录的 TAG?方法名称和数据成员?逻辑和程序流程本身?其他?

换句话说,我可以理解混淆的必要性,但是我如何才能在不从头重写所有内容的情况下实现建议(可能存在比不修改任何内容更糟糕的错误)?

最佳答案

目前我正在研究这个问题,到目前为止,我的方法如下:

  1. 我正在使用 BillingReceiver、Billing Service、PurchaseObserver 和 ResponseHandler。
  2. 我已将所有常量移至我自己的常量类中,并且上述所有类都包含在我自己的包中。
  3. 我已经取消了 PurchaseDatabase 类并将其部分集成到我自己的 SQLite 数据库、DBAdapter 和数据访问类中。
  4. 我已将 CatalogEntry 更改为我自己的模型对象,我的 UI 将与示例完全不同,例如RadioButton 组而不是用于产品项目的 Spinner(我只有 4 个)。
  5. 它在安全类中说“为了安全实现,所有这些代码都应该在与应用程序通信的服务器上实现”。我很“幸运”,我的应用程序无论如何都必须联系我的服务器,所以我将在服务器上实现这些安全措施,并且我将自己验证传递给服务器的购买信息。我希望使用 SSL 来保护这部分通信,并且我已经需要一个存储在我的服务器上的事先用户名/密码(散列和加盐)。
  6. 我正在删掉我没有使用的任何其他多余代码,例如有效负载编辑。
  7. 一些方法的签名中有 5 或 6 个参数,例如onPurchasestateChanged() - 我正在考虑将它们组合成一个包装器对象(但还没有这样做)。
  8. 我正在缓慢而彻底地对其进行测试,以便了解发生了什么,并遵循建议。我首先使用了完整的样本以确保它有效并测试了静态响应。然后我开始进行自己的更改,同时仍在进行静态测试。我仍在测试静态响应,我将跟踪消息流以了解正在进行的交换。对此感到满意后,我将使用自己的产品 ID 进行测试,并尝试对数据及其安全性感到满意。
  9. 我认为 developerPayload 字符串也可以被签名和加密,当返回到我的服务器时,解密并检查完整性。
  10. 最后,我将使用 ProGuard 混淆代码,并遵循 StackOverflow 上提供的一些这样做的技巧。

希望这对您有所帮助。

关于android - 在 BillingService 模块中,需要修改什么来增加安全性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8789658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com