我有一个 android 应用程序,它发送有关服务器购买的更新。我现在要做的是,我在服务器端和 Android 客户端使用相同的密钥生成器将购买和其他一些共享细节加密到 MD5 中。但是,如果有人解码 APK 文件,该人可以通过生成密钥轻松进行调用。防止此类攻击的最佳方法是什么?
问问题
161 次
3 回答
0
最佳解决方案是您实现一些 Web 服务,该服务将返回您一个访问密钥(每次您想要获取访问密钥时都会更改),您每次都将使用该访问密钥以 POST 方法与您的服务器通信。这是最安全的方法,并且被 Facebook、Twitter 等所有优秀网站使用。
于 2012-11-29T09:07:56.630 回答
0
使用 HTTPS 与您的服务器通信,以保护传输中的数据。不要试图发明安全协议。如果您想限制对服务器 API 的访问,请使用某种形式的身份验证:用户名和密码(通过 HTTPS)或更好的是某种身份验证令牌(OAuth 等)。如果您将密钥和/或密码存储在 APK 中,任何人都可以通过反编译 APK 来提取它们。如果您想防止这种情况发生,您需要使用令牌身份验证,其中令牌过期并且如果受到损害可能会失效。
于 2012-11-30T02:22:44.447 回答
0
因为我的问题基本上是关于使用应用内购买更新服务器,我最终在服务器端进行了公钥/私钥身份验证。Android 建议在客户端验证收据,但我们只是将收据转发到服务器并使用公钥在那里进行验证。
于 2012-12-17T14:26:21.420 回答