如何保护web服务,以便只有我的android应用程序可以使用我的web服务
我们已经构建了一个Android应用程序,该应用程序将POST HTTP请求从Android发送到我的PHP服务器。作为响应,webservice将JSON对象发送到android应用程序以显示结果。如何保护web服务,以便只有我的android应用程序可以使用我的web服务
像服务之一是像
http://mydomain.com/test/weather.php?lat=13.4332&long=80.454
因为我不是在Android的专家,所以要处理的安全性从PHP Web服务到底。
如何保护我的web服务调用,以便只有我的应用程序可以使用我的web服务。我不希望有人解密apk并获取webservice URL并在定制输出数据后使用它。
我该如何做到这一点?请给我提供一个很好的例子。
请确保您在POST请求中请求额外的字段以检查发件人的ID。在这个领域中,你可以使用一个哈希序列,就像由md5算法生成的哈希序列一样。
所以,在你的Android应用程序,你会使用标识符和一般的字符串生成散列字符串,像这样:
$identifier='Here comes an understandable unique Id for your App user';
$common_sequence='Here comes random sequence, the same to be used server-side';
$hash_sequence=crypt($identifier . $common_sequence);
在您的文章,你有这2场:
- Hash_sequence
- 用户ID
在你的服务器,你可以重新生成hash_se因为你已经有common_sequence了,还有userId。检查它们是否匹配。
然而,这种解决方案有一些薄弱点,特别是可以多次使用hash_sequence的事实。您可以考虑在生成序列中插入一个时间因子,例如像yyyymmddHHmm,这样序列就会每分钟改变一次。
Crypt()是一个在PHP中生成hash_sequence的函数。然而,你需要一种在你的应用程序中产生类似序列的方法。在这种情况下,一个简单的MD5散列可能就足够了,并且必须有一个Android Dev开发语言中原生的MD5生成器。
最良好的祝愿,
看到这个http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –
如果你有能力,你应该实现使用HTTPS在您的应用程序,这可以解决许多安全问题。 创建一个自签名服务器SSL证书,并使用Android SDK中的keytool为此目的在您的Web服务器上进行部署。然后创建一个自签名客户端,并将其作为资源部署在您的应用程序中的一个自定义密钥库中(keytool也会生成这个)。将服务器配置为需要客户端SSL身份验证,并仅接受您生成的客户端证书。 oReilly : Application Security for the Android Platform 或 如果它只是您的客户端和服务器,您可以(也应该)不购买任何东西而使用SSL。您可以控制服务器和客户端,因此每个应该只信任一个属于另一个的证书,并且您不需要CA就可以达到此目的.PHP可以通过POST或GET接收数据,甚至可以通过网站浏览器。用来做这件事的方法之一是通过卷曲。 您必须在您的PHP中验证POST或GET所收到的信息,这种语言有很大的能力来解决这些“问题”;看看这部分的PHP官方文档。
假设你正在构建一个登录系统:你也可以在登录页面添加一个带有秘密唯一代码的隐藏元素,它只能发生一次,在会话中保存这个秘密代码,所以,登录脚本在会话中查找对于此代码,与发布到脚本的内容进行比较,应该继续进行。
而且,如果你想获得您的访问者的IP地址:想要
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
想在这里查找:Encrypt data within mobile app and send to web service和Web services: how prevent illegal accesses
看到这个http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –
看到这个http://shabbirdhangot.wordpress.com/2014/07/12/secure-web-service-url-in-android/ –