加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 如何保护webservice,以便只有我的Android应用程序才能使

发布时间:2020-12-13 21:48:01 所属栏目:PHP教程 来源:网络整理
导读:我们构建了一个 Android应用程序,从 Android到我的PHP服务器POST POST请求.作为响应,webservice将JSON对象发送到Android应用程序以显示结果. 像其中一个服务就好 http://mydomain.com/test/weather.php?lat=13.4332long=80.454 由于我不是android的专家,所以
我们构建了一个 Android应用程序,从 Android到我的PHP服务器POST POST请求.作为响应,webservice将JSON对象发送到Android应用程序以显示结果.

像其中一个服务就好

http://mydomain.com/test/weather.php?lat=13.4332&long=80.454

由于我不是android的专家,所以想要从PHP端处理webservice的安全性.

如何保护我的webservice调用,以便只有我的应用程序可以使用我的web服务.如果有人解密apk并获取webservice URL并在自定义输出数据后使用它,我不想要.

我怎样才能做到这一点?请给我任何好的例子.

解决方法

如果你有能力,你应该在你的应用程序中实现HTTPS的使用,这可以解决许多安全问题.
创建自签名服务器SSL证书,并在Web服务器上使用Android SDK中的keytool进行部署.然后创建一个自签名客户端,并将其作为资源在应用程序中包含的自定义密钥库中部署到您的应用程序中(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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读