我正在使用TMDB api创建一个应用程序,并且已经按顺序发出了一些REST请求 获取请求的数据。我想知道黑客是否有可能嗅探网址并检索api密钥,因为密钥存在于网址中。
如果是,我该如何保护钥匙?
答案 0 :(得分:2)
简单地说,只要它保留在Android应用程序中,就无法保护您的API密钥。 即使您以某种方式加密API密钥,对您的应用进行逆向工程(反编译)的人也可以检索API密钥,因为您的解密密钥也需要位于APK中的某个位置(否则您的应用无法使用API密钥)。
唯一的解决方案是使用API密钥将处理卸载到您自己的服务器,并使用一种安全的方式让您的应用与该服务器通信(即SSL)。
通过这种方式,您可以在安全方面(您的服务器)转移到单点故障点,而不是可以进行逆向工程并且难以跟踪的大量移动应用程序(随着时间的推移安装了不同的版本)< / p>
答案 1 :(得分:0)
有几种解决方案但并非所有解决方案都很容易实现。
如果您在执行HTTP请求时害怕中间人攻击,则可能需要考虑使用HTTPS。然后加密所有数据,包括URL。这高度依赖于服务器,因为它是必须处理HTTPS请求而不是HTTP的服务器。
如果你害怕人们逆向工程你的dexed和编译apk。您可能需要考虑obfuscation。这将使你的apk不可逆,但至少很难这样做。