首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android服务器通信安全

Android服务器通信安全
EN

Stack Overflow用户
提问于 2016-10-15 00:10:05
回答 1查看 95关注 0票数 0

几天前,一个人对我的应用程序进行了反编译,并向我展示了源代码中的一个问题。我在应用程序的源代码中硬编码了我的服务器的链接和密码,我不知道通过反编译任何人都能看到我的源代码。我使用proguard,但是proguard不会混淆字符串。这让我想知道怎么做才是正确的方法?我的应用程序如何进行api调用,服务器如何对其进行身份验证?我做了一个研究,但我没有看到太多关于这方面的内容。我的应用程序不管理用户和密码。我存储在代码中的用户和密码就是用于登录服务器的用户和密码。

EN

回答 1

Stack Overflow用户

发布于 2016-10-17 16:26:42

是的,很容易看到反编译的Java代码来获得键等类似的东西。

有几件事要做:

  1. 确保“应用程序密钥”或“令牌”不是具有深度管理员权限的机密。许多SaaS / API提供程序会为您提供多个密钥。一种是客户端密钥,它在权限/可以执行的操作方面受到限制,另一种是服务器密钥,它具有更多的权限,但不会通过客户端代码泄露。在这种情况下,您不应该共享相同的服务器登录/管理员密码。利用最小特权原则(https://en.wikipedia.org/wiki/Principle_of_least_privilege)
  2. Ensure字符串是一个静态的最终结果。在这种情况下,编译器和Proguard允许字符串内联。这使得了解字符串的用途变得更加困难。如果你只有一个"Config“类,很容易在facebookAppId中搜索”facebook“,”secret“googleSecret等。
  3. 为了真正安全,你可以对字符串执行一些加密或其他算法,但这意味着你还可以将加密秘密存储在代码本身中。

一般来说,我认为(1)给出了最多,因为你应该总是假设客户端中的任何字符串都可以被找到/破解,无论是Android/Java with Proguard还是minified javascript。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40047639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档