2016-04-03 26 views
1

我讀了this關於如何從apk中提取代碼。APK - 安全在哪裏?

我真的很困惑其他應用程序如何確保安全。我有一個網站。在那裏我寫了所有的查詢在PHP中。所以沒有辦法讓我的查詢,除非他們妥協我的服務器。

在android應用程序的情況下,我將不得不寫所有的查詢,連接細節在Java中。所以當他們能夠從APK獲取代碼時,他們可以獲得我的憑據。是不是?

其他應用程序如何工作?如果我理解錯誤,請幫助我理解。

+0

看看我對類似問題的回答: [隱藏字符串在混淆代碼](http://stackoverflow.com/questions/4427238/hiding-strings-in-obfuscated-code/39856033#39856033) –

回答

1

Android有一個功能專業護衛。職業衛士將所有字符串和常量值轉換爲混淆代碼。它還刪除未使用的文件。所以通過使用職業警衛,你會得到兩個好處。首先你得到你的代碼安全。其次,Apk大小減少到25%。

+0

讓我嘗試這個。所以沒有人能從十六進制得到實際的字符他們可以將十六進制轉換爲字符是不是? –

+0

恩,你說得對。我匿名使用hax詞。在對該格式進行了一些研究後,我編輯了我的答案 –

0

將您的查詢保存在res/string.xml文件中並使用Proguard。不要用Java編寫查詢語句,只要使用string.xml中的字符串作爲查詢語句。

3

因此,當他們能夠從APK獲取代碼時,他們可以獲得我的憑據。是不是?

是的。如果您的應用包含祕密並將其分發給您的客戶,您的客戶就有這個祕密。

雖然你可以使用像Proguard這樣的混淆工具來隱藏祕密,但他會再次受到有限的效果,除了最偶然的攻擊者之外。

其他應用程序如何工作?

通常,客戶端應用程序會連接到服務器上的前端應用程序。應用程序服務器執行自己的身份管理,連接到數據庫,並執行應用程序爲每個用戶所允許的任何有限範圍的操作。

通常使用某種Web服務訪問應用程序服務器。您可以在這裏重新使用您的PHP代碼;那麼客戶端應用程序只是一個方便的界面,可以對現有網站進行HTTP調用。

+0

謝謝。你的意思是REST喜歡的東西?從服務器獲取JSON響應並在android前端處理? –

+0

是的,對於非公共資源,使用某種帳戶認證步驟的REST和JSON將是典型的。 – bobince