当前位置:编程学习 > C#/ASP.NET >>

怎么保障webservice的安全???

写了几个webservice并发布到公网上 (用户注册\用户登录判断\数据写入\数据读取).. 
客户端用 winform 调用. 因为与现金有关.所以安全方面需要考虑一下

怎么防止非法调用(最好是只允许我的客户端调用,别人无法调用)\非法写入\非法读取?? 

刚才在查资料说用wcf 可那个东东,看一会,头都大了..有啥比较行之有效的方法? 
或者说各位在使用webservice的时候,都是怎么做的? --------------------编程问答-------------------- 关注!! --------------------编程问答-------------------- 请参考:基于加密机制的WebService访问与通信安全 --------------------编程问答-------------------- 还是无法防止"不允许使用" 这个web api --------------------编程问答--------------------
引用 3 楼 IPvECMS 的回复:
还是无法防止"不允许使用" 这个web api
既然是WebService,前提是允许任何用户通过Internet访问 --------------------编程问答-------------------- 最好是只允许我的客户端调用,别人无法调用!那就别用webservice了 --------------------编程问答-------------------- 部署到远程后一般用户是调用不了的,他是没有INVOKE按钮的,紫玉如果值允许你使用,而不允许使用,那就就要用SOAP头进行身份验证了 --------------------编程问答-------------------- 参考
保证使用ASP.NET 创建的XML Web 服务的安全 --------------------编程问答-------------------- 还是考虑WCF,WCF就是为了安全 --------------------编程问答-------------------- 同意6楼的,加个SOAPHeader,简单又方便。 --------------------编程问答-------------------- up --------------------编程问答-------------------- mark --------------------编程问答-------------------- mark --------------------编程问答-------------------- ding --------------------编程问答-------------------- ding --------------------编程问答-------------------- WSE   --------------------编程问答-------------------- 不懂,帮顶 --------------------编程问答-------------------- 要考虑安全问题的 
 你可以做一些 数据签名、数据体加密、用户验证... --------------------编程问答-------------------- mark yi xia --------------------编程问答-------------------- 用上加密锁 呵呵 --------------------编程问答-------------------- 不懂 --------------------编程问答-------------------- 这里面有好几种方式,是为webservice提供安全机制的,你可以参考一下。
http://www.blogjava.net/RongHao/archive/2007/06/12/123635.html

我现在也使用的是这里面的第三种方法,采用HTTPS访问的。我用java调用能成功,但我不知道C# winform 怎样使用证书。
你成功后顺便告诉我一声。
--------------------编程问答-------------------- WCF


[WCF Security] 3. X509 身份验证
http://www.rainsts.net/article.asp?id=474

[WCF Security] 4. 用户名/密码身份验证
http://www.rainsts.net/article.asp?id=475 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 知道wse吗,这个是微软官方的解决方案 --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 友情up --------------------编程问答-------------------- 密钥?防火墙IP限制?~~

学习 --------------------编程问答-------------------- 用自己的加密函数加密出入的数据,非法调用判断后自然无法执行了。 --------------------编程问答-------------------- 将WebService进行授权访问不就OK了。
这个一下说不清楚,实现的方式有很多种,比如常见的授权方式,用户登录系统后系统为用户生成唯一的key保存在服务器上,并且下发给用户,当用户要执行某些业务操作(如你说的调WebService),需要将生成的唯一key一起传递过去,服务器通过判断key的有效性进行授权处理决定你是否有权调用。

这只是一个思路,实际开发中得需要更进一步的完善它。 --------------------编程问答--------------------
引用 4 楼 hulihui 的回复:
引用 3 楼 IPvECMS 的回复:
还是无法防止"不允许使用" 这个web api 
既然是WebService,前提是允许任何用户通过Internet访问


此言差.......
 
只允许自己的客户调用这实际就是一个授权过程,对WebService的调用者进行授权调用。 --------------------编程问答-------------------- Mark
明天再看,刚好需要了解这方面的东西 --------------------编程问答--------------------
引用 30 楼 andywan 的回复:
用自己的加密函数加密出入的数据,非法调用判断后自然无法执行了。

你说的这个思路早已经在瑞典的网上银行执行了...每个用户都会根据accout_No生成一个数字密匙,存贮在用户默认的浏览器内.每次要进入网上账户执行操作都会查验这个密匙.

所以....没有讨论的必要了.关键是如何实现的....详细步骤. --------------------编程问答-------------------- 受用 帮顶 --------------------编程问答-------------------- 最简单的办法,在服务器端,把IIS设置成windwos身份证证。然后,把windows用户名和密码写在winform中,这们就只有winform程序才可以调用了,其它的都不能访问。

(如果其它人也知道这个用户名和密码就没办法了)

--------------------编程问答-------------------- 简单的话 [enablesession] --------------------编程问答-------------------- 强烈关注,插不上嘴啊 --------------------编程问答-------------------- 关注,没具体用过webservice --------------------编程问答-------------------- 俺也碰见这个问题了 ...
也没很好的解决,帮顶...
补充:.NET技术 ,  Web Services
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,