阻止非Android用户调用JSON服务

时间:2010-11-05 06:39:40

标签: android web-services json encryption

我的Android应用程序通过HTTP调用JSON服务,我想只允许我的应用程序调用该服务并阻止其他服务。

最好的方法是什么?

我能想到的一种方法是使用私钥/公钥加密。我们可以在应用程序中安全地嵌入私钥吗?

3 个答案:

答案 0 :(得分:2)

在您的应用中包含一些隐藏的证书/凭据,每个下载的应用都有所不同。然后使用这些进行身份验证。即使这样,很容易被滥用,但你已经设置了第一道防线。

之后,尝试根据IP,凭据等对单个客户端根据需要请求,限制和黑名单的比率设置限制。

答案 1 :(得分:1)

最简单的方法是使用HTTPS进行身份验证。

编辑:

这里的问题不是如何保护对服务器的访问,而是如何在Android手机上隐藏/保护凭证(密码/证书等等)。问题应该是:如何在Android应用程序中隐藏数据。

一种解决方案是使用像ProGuard这样的混淆器。

答案 2 :(得分:1)

只要您分发应用程序,就可以将其拆解。因此,可以提取并重用与您的应用程序一起分发的私钥。

没有完全可靠的方法来做你想做的事情。但是有一些方法可以限制客户,即使他们不是万无一失的。

最简单(也是最不安全)的是基于用户代理限制访问。但任何客户都可以伪造用户代理。

证书/加密解决方案更加强大,但如上所述,证书可以从您的应用中提取。

某些应用程序在与您相同的上下文中使用OAuth。但OAuth并非专为桌面(或移动)应用而设计,也容易受到应用程序逆向工程的影响。

您可以对用户进行身份验证(通过用户/密码或其他标准方法)。在这种情况下,您不会根据平台进行限制。然后,您可以关闭滥用您服务的用户帐户。这是一个安全的解决方案,但不完全是您的问题的答案。