2014-09-12 65 views
1

假設我有一個調用Web服務從遠程服務器數據的基礎上,這意味着我的代碼中的一些部分我將使用URL得到一些數據的Android客戶端應用程序的後端調用我需要的API,現在可能現在有android de-compilers獲取APK文件的源代碼,這意味着我用來調用API的URL可能會受到某人的反編譯我的應用程序,這是我想要避免的一個主要問題,即使我已經通過身份驗證保護了我的遠程服務器,無論它是基本還是摘要還是以往,我仍然不希望我的API的URL受到來自第一個地方,我該如何避免這種情況發生,是否有某種算法可以解碼我的代碼內部的URL,因此當我的APK被反編譯時,我調用的這些API的地址不會被公開?Android系統如何保護我的源代碼

+0

您可以使用天真的機制對字符串進行加擾/解擾,因此乍一看看起來不像URL,但易於被任何想知道URL的人反向設計。 – 2014-09-12 12:20:28

回答

0

沒有辦法阻止攻擊者獲取URL。你應該有一些API或密碼,每個用戶都是唯一的,以防止未經授權訪問你的api。

由於攻擊者擁有apk,並且由於應用程序必須知道要使用哪個網址,因此攻擊者只需使用一些邏輯即可獲取網址,但無論如何,混淆你想出來。

-2

你的代碼可以逆向工程在幾乎所有情況下,即使你使用機器人會built-in obfuscator。你只能讓攻擊者更難。因此,包含apikey或密碼也不起作用 - 因爲這個超級機密信息也必須存儲在某個地方。

但最大的問題是:監控網絡流量將揭示 URL 服務器的位置,在任何情況下,不管你做什麼。

因此,唯一的解決方案是設計你的服務器的方式,它可以處理「邪惡」的請求。沒有辦法繞過它,否則你的服務器可能會被黑客入侵!所以...

  • 你不想讓任何人知道你的服務器? 不可能要限制每個用戶的請求
  • 幾乎不可能。如果哪裏容易,拒絕服務攻擊將成爲過去。限制每個IP地址的請求數是一個開始,但不是完美的,因爲手機經常改變他們的地址。
+0

爲什麼倒票? – PhilLab 2014-09-12 13:17:46

+0

不是我...... :) – user2469133 2014-09-12 15:11:09

+0

但是,如果連接是通過SSL加密的,那麼您可能會錯誤地在「監視網絡流量將會顯示URL」,然後數據包嗅探器不應該能夠顯示請求url – user2469133 2014-09-12 15:27:48