2

我正在使用 TMDB api 制作一个应用程序,并且一直在发出一些 REST 请求以获取请求的数据。我想知道黑客是否有可能嗅探 url 并检索 api 密钥,因为密钥存在于 url 中。

如果是,我该如何保护密钥?

4

2 回答 2

2

简而言之,只要 API 密钥保留在 Android 应用程序中,您就无法保护它。即使您以某种方式加密 API 密钥,反向工程(反编译)您的应用程序的人也可以检索 API 密钥,因为您的解密密钥也需要在 APK 中的某个位置(否则您的应用程序无法使用 API 密钥)。

唯一的解决方案是将使用 API 密钥的处理卸载到您自己的服务器上,并以一种安全的方式让您的应用程序与该服务器通信(即 SSL)。

这样,您就可以转移到安全方面的单一故障点(您的服务器),而不是大量可以进行逆向工程且难以跟踪的移动应用程序(随着时间的推移安装不同的版本)

于 2013-04-30T06:09:36.237 回答
0

有几种解决方案,但并非所有解决方案都很容易实现。

如果您在执行 HTTP 请求时害怕中间人攻击,您可能需要考虑使用HTTPS。然后加密所有数据,包括 URL。这高度依赖于服务器,因为它是必须处理 HTTPS 请求而不是 HTTP 的服务器。

如果你害怕人们对你的 dexed 和编译的 apk 进行逆向工程。您可能需要考虑混淆。这将使您的 apk 不是不可逆转的,但至少很难做到。

于 2013-04-30T05:46:47.230 回答