2012-10-03 63 views
2

我有一个应用程序解析来自我的网站空间的数据。但是如果您对我的应用程序进行逆向工程,任何人都可以找出我存储数据的位置。如何防止他人访问我的XML文件。 (我将所有的文件路径存储在字符串文件中,所以proguard不会解决它),有没有办法将数据保存在工作区中,只有应用程序可以访问它?还是有提供这种功能的服务? (注:我没有与网络开发的经验)如何保护XML文件?

感谢提前:)

+1

您可以加密它们并将加密密钥保留在字符串文件之外吗?让它变得非常困难?你所要问的是最难解决的问题之一:“我有一件事,每个人都知道它是如何工作的,我怎样才能限制对它使用的资源的访问” – Wug

回答

2

有没有真正一个简单的方法来做到这一点。有几件事你可以做,比如密码保护你的目录(但是密码必须存储在apk中)或者使用API​​密钥(但是,你需要将它存储在apk中)。

一种选择是通过某种复杂的算法动态构建字符串路径,从而使proguard迷惑有用。然而,在一天结束的时候,你仍然容易受到数据包检查(假设你没有使用HTTPS)。您还可以在应用程序上运行并在服务器上运行的共享密钥生成器(基本上是一种生成基于时间的看似随机的密钥的算法)。这些值将在运行时进行比较,如果它们匹配,则会提供该文件。再一次地,proguard混淆会使得很难弄清算法是如何工作的。

另一种选择是利用Android的私人空间。如果电话扎根,你会受到影响,但这会有所帮助。基本上,下面这个算法:

  1. 一旦安装了该应用程序生成一个唯一的ID
  2. 发送的唯一ID记录了它,并生成一个对称密钥
  3. 商店中的应用程序,私有存储对称密钥服务器空间
  4. 每次的请求作出的独特ID与请求
  5. ,服务器从数据库中预先生成的密钥,并用它属下的加密文件一起发送
  6. 该应用程序然后将应用程序专用存储空间中的密钥加载并解密文件