当前位置: 代码迷 >> Web Service >> webservice怎么保证只能在手机端调用
  详细解决方案

webservice怎么保证只能在手机端调用

热度:157   发布时间:2016-05-02 02:20:16.0
webservice如何保证只能在手机端调用?
开发了一个webservice 里面有一个方法 比如

[webmethod]
public string Login(string name,string pwd)
{
  //处理
 return "1";
}

然后我发布到互联网上供手机端调用
比如
http://www.xxoo.com/mobileApi.asmx
当然你直接浏览也可以看到..

那么问题就来了.这个服务.正常我是给手机用的.

但是如果我偷偷知道了这个服务 我完全可以用winform添加引用或者恶意Post来导致接口的崩溃(假设里面大量的操作数据库)

所以.我如何保证我服务的安全性?有人会说"增加一个参数是XXOO的加密之后的string";


public string Login(string name,string pwd,string password)
{
  if(password!="4846546464654DASD12545DAS45DSA4D")
   {
    return "0";
   }
  //处理
 return "1";
}




但是现在有很多软件直接可以捕获apk的外部请求来看的.

所以人家一捕获很简单就能看到 某个按钮点击请求了http://www.xxoo.com/mobileApi.asmx?wsdl里面的Login方法

参数3个分别是admin admin 4846546464654DASD12545DAS45DSA4D

人家一样可以模拟进行post

so  还有什么办法呢?
------解决方案--------------------
应该是没有可能的,你要知道手机模拟器,可以完全模拟手机上的应用
------解决方案--------------------
引用:
Quote: 引用:

应该是没有可能的,你要知道手机模拟器,可以完全模拟手机上的应用


那岂不是别人知道我的服务地址了 就可以攻击 没有办法防御了??


建立IP白名单和黑名单,限制他同一时间段内访问次数
------解决方案--------------------
引用:
Quote: 引用:

建立IP白名单和黑名单,限制他同一时间段内访问次数


webservice能获取调用者的IP么?


当然可以了,只要遵循传输协议,就有IP
------解决方案--------------------
引用:
Quote: 引用:

应该是没有可能的,你要知道手机模拟器,可以完全模拟手机上的应用


那岂不是别人知道我的服务地址了 就可以攻击 没有办法防御了??


一个服务的公布,有些安全因素就在放在服务内部考虑。
------解决方案--------------------
必须在安全策略层面限制,考虑客户端类型没有意义。
------解决方案--------------------
引用:
安全策略层面太抽象了...
比如上面有人提到的IP限制、访问次数限制,或者用户权限限制、验证码测试。。。
如果可能,也许改善API的性能问题也比较重要。
  相关解决方案