• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

基于DOTNET的XML WEB SERVICE 安全与性能优化

发布: 2007-7-01 20:40 | 作者: admin | 来源: | 查看: 194次 | 进入软件测试论坛讨论

领测软件测试网

摘要:加强XML WEB SERVICE的安全性以及提高其性能是WEB SERVICE面临的挑战。
本文通过DOTNET中提供的加密和各种安全措施来提高WEBSERVICE的安全性;以及通过压缩类对SOAP消息压缩达到提高WEBSERVICE安全和性能优化的目的;同时采用类型化数据集来提高WEBSERVICE访问数据库的性能。

关键字:XML、DOTNET、SOAP、WEBSERVICE、安全、加密、性能优化


XML WEB SERVICE的跨平台,跨语言性是勿庸置疑的。基于WEB SERVICE的分布式系统将是WEB SERVICE最大的功能和特点。我们知道未来的网络将提供各种各样的服务,也许操作系统将失去效用,那时人们只要通过浏览器上网享用各种服务,这些服务就是我们的WEB SERVICE。那么这样也给我们同时带来了很多问题,主要的就是WEB SERVICE的安全与优化该怎么有效的解决?这是任何的网络程序都面临的挑战,WEB SERVICE也可谓任重而道远。
本文主要阐述了基于DOTNET的XML WEBSERVICE 数据传输安全性的加强以及如何提高XML WEBSERVICE的性能的一些方法及应用。

一、 SOAP与WEB SERVICE的关系

网络传输离不开网络协议的支持,在OSI网络结构的七层模型中,XML WEB SERVICE应该是应用层的操作,那么应用层中有诸如HTTP等协议,XML WEB SERVICE也就是基于HTTP协议族的。准确的说SOAP(简单对象访问协议)正是HTTP协议族中的一个子协议。它是专门用于WEB SERVICE的,因为SOAP它的内部编码就是XML。顾名思义XML WEB SERVICE中的XML就是指WEB SERVICE中的传输,部署等等相关操作都是基于XML编码的,而SOAP就是用来实现WEB SERVICE数据传输的。可见,SOAP是XML WEB SERVICE的灵魂。我们知道,网络最大的问题就是安全。而网络安全主要是数据访问的安全。那么WEB SERVICE的安全关键点就在SOAP上。
那么就让我们了解一下SOAP。SOAP全名是简单对象访问协议。简单的来说SOAP消息体包含头条目和体条目。从XML编码角度来说,头条目中声明了体条目中所要用到的命名空间,体条目中封装了则是WEB SERVICE需要传输的数据。当然这是常规的。反之,我们可以从网络安全或性能优化的角度考虑,可以在头条目上数据或在体条目中加上想加的数据。当然,如果你想加密WEB SERVICE传输的数据达到安全的目的其实也就是对SOAP进行加密。

二、加密SOAP头条目及加密SOAP扩展

1、加密SOAP头条目
从代码的角度要加密SOAP头条目,首先必须先定义SOAPHeader的派生类,在派生类中定义的数据成员,将被包含在SOAP头条目中进行传输。
DOTNET FRAMEWORK给我们提供DESCryptoServiceProvider等加密类,我们可以用该类对SOAPHeader定义的派生类的数据成员进行加密。这样使得要传输的数据得到了加密,而不要加密整个SOAP消息。在WEBSERVICE的消费者(客户端)和服务提供者交互SOAP时,两端首先解析的都是SOAP头,所以这样做既可以达到加密的效果,也提高了WEB SERVICE的网络传输的效率。
例如:用WEB SERVICE对客户身份进行验证实现安全登录。客户端就可以把用户名,密码封装在一个SOAPHeader派生类中,然后用加密类对用户名,密码数据域进行加密,到达服务端再进行解密,这样达到安全登录的目的。

2、加密SOAP扩展
从WEBSERVICE生存期剖析,从SOAP请求到SOAP响应,整个传输过程都是基于SOAP的,那如果我们在SOAP请求后和SOAP响应前截取SOAP,然后对截取的SOAP的数据进行加密,那么就可以达到WEBSERVICE网络安全传输的目的。
下面介绍一下加密SOAP扩展的全过程
①从SoapExtension派生一个类
②保存对表示将来 SOAP 消息的流的引用
③初始化 SOAP 扩展特定的数据
④处理 SOAP 消息(加密SOAP消息中的数据就可以在这里进行)
⑤实现以上四步后就可以通过给特定的XML WEB SERVICE方法配置SOAP扩展就可以截取并加密SOAP消息。

三、身份验证与WEB SERVICE安全模式

1、身份验证
一般来说ASP.NET中提供了四种身份验证

(1) 基于WINDOWS身份验证
顾名思义WINDOWS身份验证是根据WINDOWS操作系统提供的身份进行身份验证的。在DOTNET中提供的类可以用来访问WINDOWS操作系统的用户和组。这种身份验证模式比较适用于内部系统或VPN网络系统。

(2) 基于FORMS(表单)身份验证
表单身份验证也就是基于WEBFORM进行身份验证。当然ASP.NET可以通过配置WEB.CONFIG文件对表单身份验证进行具体的设置,可以加入DOTNET内部的一些加密的措施使常规的表单数据更具安全性。

(3) PASSPORT身份验证
这是MICROSOFT提供的一种身份验证服务。如果你要使用PASSPORT身份验证那么数据将交给PASSPORT来进行验证,实际上PASSPORT就是一个提供身份验证及注册等功能的WEBSERVICE。

(4) 其他类型或自定义身份验证
如用自定义SOAP头进行身份验证这就是自定义身份验证,只要你把WEB.CONFIG中

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网