几天前,一个人反编译我的应用程序,并在我的源代码中显示一个问题。我在应用程序的源代码中硬编码链接和我的服务器的密码,我不知道通过反编译任何人都可以看到我的源代码。我使用proguard,但proguard不会混淆字符串。这让我想知道如何做到这一点的正确方法?我的应用程序如何进行api调用,服务器可以对其进行身份验证?我做了一项研究,但没有看到有关这方面的内容。我的应用不管理用户和密码。我存储在我的代码中的用户和密码是要在服务器中登录的用户和密码。Android服务器通信安全
0
A
回答
0
是的,很容易看到反编译的Java代码来获取密钥等。
有几件事情要做:
确保“应用程序键”或“标记”不深管理员权限秘密。许多SaaS/API提供商为您提供多个密钥。一种是客户端密钥在可执行的特权/操作中受到限制,另一种是具有更多特权但不会通过客户端代码泄漏出去的服务器密钥。在你的情况下,你不应该共享相同的服务器登录/管理密码。杠杆原理最小特权(https://en.wikipedia.org/wiki/Principle_of_least_privilege)
确保字符串是一个静态的最终。在这种情况下,编译器和Proguard允许字符串内联。这使得知道该字符串的用途有点困难。如果你有一个单独的“Config”类,那么在facebookAppId,'secret'googleSecret等搜索'facebook'是非常容易的。
要真正安全,你可以对一些加密或其他算法字符串,但这意味着您也将加密密码存储在代码本身中。
总的来说,我认为(1)给出了最,因为你应该总是假设在客户端的任何字符串可以发现/砍死,无论安卓/ Java的使用ProGuard或精缩的JavaScript。
相关问题
- 1. 安全的android与服务器通信
- 2. 安全的iPhone(iOS)/服务器通信
- 3. NodeJS服务器 - 服务器安全通信
- 4. 在android中的网络服务器通信安全
- 5. Android与服务器通信
- 6. Android - Web服务器通信
- 7. 如何确保服务器 - 服务器应用程序中的通信安全?
- 8. Android的安全HTTP通信
- 9. Android服务通信
- 10. 安全地与后端服务器通信
- 11. 两个后端服务器之间的安全api通信
- 12. 两台服务器之间的安全通信
- 13. 在应用传输安全下与用户服务器通信
- 14. 与数据库的身份服务器通信 - 安全问题
- 15. 开发需要与服务器安全通信的Flash游戏
- 16. c#客户端和java服务器之间的安全通信
- 17. 保护Flash AS3代码+与服务器的安全通信
- 18. C#客户端和PHP服务器之间的安全通信
- 19. Chrome扩展和服务器之间的安全通信
- 20. 与服务器通信 - 安卓应用
- 21. 安全客户端服务器通道
- 22. Android网络服务器安全
- 23. Android与Web服务器数据通信
- 24. Android客户端服务器通信
- 25. Android,客户端服务器通信
- 26. Android + NodeJS:客户端 - 服务器通信
- 27. 最快的android服务器通信
- 28. Android和MySQL服务器通信
- 29. Jersey REST服务器安全和Android客户端安全
- 30. GWT服务器到服务器通信
我相信你是指这篇文章。 http://stackoverflow.com/questions/14570989/best-practice-for-storing-private-api-keys-in-android –