开发了一个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 还有什么办法呢?
------解决方案--------------------
应该是没有可能的,你要知道手机模拟器,可以完全模拟手机上的应用
------解决方案--------------------
建立IP白名单和黑名单,限制他同一时间段内访问次数
------解决方案--------------------
建立IP白名单和黑名单,限制他同一时间段内访问次数
webservice能获取调用者的IP么?
当然可以了,只要遵循传输协议,就有IP
------解决方案--------------------
应该是没有可能的,你要知道手机模拟器,可以完全模拟手机上的应用
那岂不是别人知道我的服务地址了 就可以攻击 没有办法防御了??
一个服务的公布,有些安全因素就在放在服务内部考虑。
------解决方案--------------------
必须在安全策略层面限制,考虑客户端类型没有意义。
------解决方案--------------------
安全策略层面太抽象了...
如果可能,也许改善API的性能问题也比较重要。