攻破WebService,WCF的改进

一、WebService的调用

  WebService的调用可以分为两种,一种是客户端调用,比如在浏览器中用Javascript或者应用程序调用;一种是服务端调用,这种用得比较多,很常见。这里要说的是明文调用,相信很多服务都没用WSE加密。

  二、客户端调用

  调用方式就不多说了,网上很多,但是傻子也知道这种调用有很大的缺陷。因为WebService是明文的,除非是很不重要的数据,这样调用纯粹就是找死。是个人就有办法攻破。要么是修改掉重要数据,要么就是数据无阻碍地被复制。加密对这种方式也不太好使。

  三、服务端调用

  首先建立一个WebService。

///
///TestService的摘要说明
///
[WebService(Namespace="http://tempuri.org/")]
[WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)]
publicclassTestService:System.Web.Services.WebService{
  publicTestService(){
    //如果使用设计的组件,请取消注释以下行
    //InitializeComponent();
  }
  [WebMethod]
  publicintAdd(intx,inty){
    returnx+y;
  }
  
}

  这里写个asp脚本调用,C#的调用方式太麻烦了。

dimurl
url="http://××××××××××/TestService.asmx/Add"
dimpostdata
postdata="x=1&y=3"
dimxmlhttp
Setxmlhttp=server.CreateObject("Msxml2.XMLHTTP")
xmlhttp.Open"POST",url,false
xmlhttp.setRequestHeader"Content-Type","application/x-www-form-urlencoded"
xmlhttp.setRequestHeader"Content-Length",LEN(postdata)
xmlhttp.send(postdata)
Response.Writexmlhttp.Status&" "
Response.Writexmlhttp.StatusText
Setxmlhttp=Nothing
%>

  这样就完成服务端的调用了。

  如何攻破服务端调用呢?要是你攻破对方的服务器,那就没什么好说的了。只是本机调用,也没太大的问题。跨机器,分布式调用,就有办法了。假设,现在有A,B两台服务器,A服务器提供了WebService,B服务器调用。

  1、A,B不在一个局域网

  A,B不在一个局域网,嘿嘿,机会来了吧?我的机器在局域网中,无法监听外网的数据。但是如果你是拨号上网的话,那还犹豫什么?监听就行了,当然,垃圾数据比有用的数据多多了啊。

  2、A,B在同一局域网

  A,B在一个局域网,那有什么办法?先看看,假如我有一台服务器C也在这个局域网中。那么,我就可以监听到数据了。来看看一次WebService调用监听到的数据。

  先是一次TCP通信,三次握手,没什么好说的。三次握手完后就是POST。

攻破WebService,WCF的改进

  下来是POST的数据。

攻破WebService,WCF的改进

  收到数据。

攻破WebService,WCF的改进

  数据全出来了!!中间的确认什么的就跳过了。明文的WebService传输是不是有很大的问题啊?不要想黑客和你的服务器不在一个局域网里。攻不破你的服务器,但是在这个局域网中的服务器,攻陷的机会要大很多。另外实在不行,托管个服务器进去,嘿嘿。那本来和你是一个局域网的用户,要攻破你的话,太esay了啊!

  四、解决方案

  加密,什么也不用说了。

  五、WCF

  我对WCF不是很熟啊。简单地看了一下,WCF的调用需要身份验证,如果去掉身份验证的话,传输的数据也是密文的。对这个不是很熟,就不讨论这个了。密文传输应该是一个改进。网上都说WCF的效率也提高了,不过从截包情况看,网络传输方面肯定没有提高。WCF不但使用了加密,而且确认的次数也比WebService的多。通信效率连WebService都不如。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23109131/viewspace-662306/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23109131/viewspace-662306/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值