2012-10-03 104 views
2

我有一個應用程序解析來自我的網站空間的數據。但是如果您對我的應用程序進行逆向工程,任何人都可以找出我存儲數據的位置。如何防止他人訪問我的XML文件。 (我將所有的文件路徑存儲在字符串文件中,所以proguard不會解決它),有沒有辦法將數據保存在工作區中,只有應用程序可以訪問它?還是有提供這種功能的服務? (注:我沒有與網絡開發的經驗)如何保護XML文件?

感謝提前:)

+1

您可以加密它們並將加密密鑰保留在字符串文件之外嗎?讓它變得非常困難?你所要問的是最難解決的問題之一:「我有一件事,每個人都知道它是如何工作的,我怎樣才能限制對它使用的資源的訪問」 – Wug

回答

2

有沒有真正一個簡單的方法來做到這一點。有幾件事你可以做,比如密碼保護你的目錄(但是密碼必須存儲在apk中)或者使用API​​密鑰(但是,你需要將它存儲在apk中)。

一種選擇是通過某種複雜的算法動態構建字符串路徑,從而使proguard迷惑有用。然而,在一天結束的時候,你仍然容易受到數據包檢查(假設你沒有使用HTTPS)。您還可以在應用程序上運行並在服務器上運行的共享密鑰生成器(基本上是一種生成基於時間的看似隨機的密鑰的算法)。這些值將在運行時進行比較,如果它們匹配,則會提供該文件。再一次地,proguard混淆會使得很難弄清算法是如何工作的。

另一種選擇是利用Android的私人空間。如果電話紮根,你會受到影響,但這會有所幫助。基本上,下面這個算法:

  1. 一旦安裝了該應用程序生成一個唯一的ID
  2. 發送的唯一ID記錄了它,並生成一個對稱密鑰
  3. 商店中的應用程序,私有存儲對稱密鑰服務器空間
  4. 每次的請求作出的獨特ID與請求
  5. ,服務器從數據庫中預先生成的密鑰,並用它屬下的加密文件一起發送
  6. 該應用程序然後將應用程序專用存儲空間中的密鑰加載並解密文件