1

基本上,对我的 Web 服务的请求是 HTTP 请求。我有一个小问题。我使用基本身份验证保护它们。这是一个问题,因为这是代码:

httpGet.addHeader(BasicScheme.authenticate(
 new UsernamePasswordCredentials("user", "password"),
 "UTF-8", false));

而且,通过使用 dex2jar 和 java 反编译器,您可以找到凭据。我也使用过 proguard,它似乎也没有保护这一点。

是否有任何解决方案可以使只有 android 应用程序可以使用 web 服务,并且用户嗅探或破解 APK 发现 web 服务 URL 无法像 android 设备一样拨打电话?

谢谢!

4

2 回答 2

0

使用 HTTPS。如果您想要安全的 http 通信,这确实是唯一的解决方案。其他任何事情,您几乎都会将您的用户凭据暴露给任何有兴趣查看的人。

于 2013-09-20T20:04:13.390 回答
0

使用扰乱代码的代码混淆,使其不再可读

您可以添加证书并从后端执行更多安全操作,因为所有 android 代码都是可见的,例如添加多个令牌并将它们存储在应用程序的首选项中。此外,每个网络请求都将使用某种算法进行加密,以便任何网络间谍也消失。

尝试制定一个使用公认方法并依赖于现场随机安全数据的安全程序,而不是编译诸如某些密钥或授权码之类的安全值。

您还可以将一些应用程序数据下载到缓存中,其中包括一些 apk 不附带的身份验证帮助程序。

最后,永远不要存储密码,每次都询问用户。

于 2017-09-24T13:12:26.527 回答