2013-04-30 145 views
2

我正在使用TMDB api創建一個應用程序,並且以 的順序發出一些REST請求來獲取請求的數據。我想知道是否有可能讓黑客嗅探網址並檢索API密鑰,因爲密鑰存在於網址中。在android中保護你的api密鑰

如果是,我該如何保護鑰匙?

+1

使它在ssl上工作,執行POST請求。或通過共享密鑰對其進行加密,併爲密鑰創建靜態值,並將其保存在代碼中,並對其進行混淆處理,然後在服務器端加密解密。 – 2013-04-30 05:43:11

回答

1

簡而言之,只要它仍然在android應用程序中,您就無法保護您的API密鑰。 即使您以某種方式加密API密鑰,對您的應用程序進行反向工程(反編譯)的人也可以檢索API密鑰,因爲您的解密密鑰也需要位於APK中某處(否則您的應用程序無法使用該API密鑰)。

唯一的解決方案是將API密鑰處理卸載到您自己的服務器上,並讓您的應用程序與該服務器通信(意思是SSL)。

通過這種方式,您可以轉向單一安全故障點(您的服務器),而不是大量的可逆向設計且難以追蹤的移動應用程序(隨時間安裝的不同版本)

0

有幾個解決方案,但不是所有的都很容易解決。

如果您在進行HTTP請求時害怕中間人攻擊,您可能需要考慮使用HTTPS。然後所有數據,包括URL,都被加密。這高度依賴於服務器,因爲它是必須處理HTTPS請求而不是HTTP的服務器。

如果你害怕人們逆向工程,你的dexed和編譯apk。你可能要考慮obfuscation。這會讓你的apk不可逆,但至少很難這樣做。