当前位置:文档之家› Web的脆弱性:各种注入、攻击

Web的脆弱性:各种注入、攻击

Web的脆弱性:各种注入、攻击
Web的脆弱性:各种注入、攻击

SQL注入

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

通过一下的例子更形象的了解SQL注入:

有一个Login画面,在这个Login画面上有两个文本框分别用来输入用户名和密码,当用户点了登录按钮的时候,会对输入的用户名和密码进行验证。验证的SQL语句如下:select * from student where username='输入的用户名' and password='输入的密码'

如果能够检索到数据,说明验证通过,否则验证不通过。

如果用户在用户名文本框中输入' or '1' = '1' or '1' = '1,则验证的SQL语句变成:select * from student where username='' or '1' = '1' or '1' = '1' and password=''

如果用户在密码文本框中输入1' or '1' = '1,则验证的SQL语句变成:

select * from student where username='' and password='1' or '1'='1'

以上两个SQL语句的where条件永远是成立的,所以验证永远是有效的。

如果在用户名文本框中输入tom' ; drop table student-- ,则SQL语句变成:

[sql]view plaincopyprint?

1. select * from student where username='tom' ; drop table student--' and password=''

这样就变成的两条SQL语句,执行完查询操作,接着直接把student表给删除了(双连接符表示注释)

如何防止SQL注入:

1. 永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和双"-"进行转换等。

2. 永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取

3. 永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接

4. 不要把机密信息直接存放,加密或者hash掉密码和敏感的信息

5. 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装

6. 采用一些工具或网络平台检测是否存在SQL注入

OS命令注入

OS命令注入和SQL注入差不多,只不过SQL注入是针对数据库的,而OS命令注入是针对操作系统的。OS命令注入即能够在服务器上执行任意命令。

如何防止OS命令注入:

1. 不要调用外部程序。举个例子,在UNIX系统上,有一个叫CGI的程序,可以执行sendmail命令来发送邮件。也许你的web应用程序也有发送邮件的功能,通过直接调用

CGI程序发送邮件非常的简单,但是不要这样做,因为在执行sendmail命令的同时,也会混杂进其他OS命令,正确的做法是使用发送邮件的library。

2. 过滤调、; ,[ ,] ,| ,< ,> ,\ 之类的符号

3. 设置用户的权限

XSS跨站脚本攻击

XSS跨站脚本攻击指攻击者在网页中嵌入客户端脚本(例如JavaScript),当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的,比如获取用户的Cookie,导航到恶意网站,携带木马等。

XSS攻击场景有以下两个方面:

1. Dom-Based XSS 漏洞。攻击过程如下

Tom 发现了https://www.doczj.com/doc/e513793934.html,中的Search.asp页面有XSS漏洞,Search.asp的代码如下:

1.

2.

3.

4. Results for <%Reequest.QueryString("term")%>

5. ...

6.

7.

Tom 先建立一个网站https://www.doczj.com/doc/e513793934.html,,用来接收“偷”来的信息。然后Tom 构造一个恶意的url(如下),通过某种方式(邮件,QQ)发给Monica

https://www.doczj.com/doc/e513793934.html,/search.asp?term=

Monica点击了这个URL,嵌入在URL中的恶意Javascript代码就会在Monica的浏览器中执行,那么Monica在https://www.doczj.com/doc/e513793934.html,网站的cookie,就会被发送到badguy网站中,这样Monica 在https://www.doczj.com/doc/e513793934.html, 的信息就被Tom盗了

2. Stored XSS(存储式XSS漏洞)。该类型是应用广泛而且有可能影响大Web服务器自身安全的漏洞,攻击者将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄露的可能。攻击过程如下

Alex发现了网站A上有一个XSS 漏洞,该漏洞允许将攻击代码保存在数据库中,于是Alex 发布了一篇文章,文章中嵌入了恶意JavaScript代码。其他人如Monica访问这片文章的时候,嵌入在文章中的恶意Javascript代码就会在Monica的浏览器中执行,其会话cookie或者其他信息将被Alex盗走

Dom-Based XSS漏洞威胁用户个体,而存储式XSS漏洞所威胁的对象将是大量的用户。

如何防止XSS跨站脚本攻击:

原则:不相信用户输入的数据

注意:攻击代码不一定在

1. 将重要的cookie标记为http only,这样的话Javascript 中的document.cookie语句就不能获取到cookie了

2. 只允许用户输入我们期望的数据。例如:年龄的textbox中,只允许用户输入数字,而数字之外的字符都过滤掉

3. 对数据进行Html Encode 处理。< 转化为<、> 转化为>、& 转化为&、' 转化为'、" 转化为"、空格转化为 

4. 过滤或移除特殊的Html标签。例如:

CSRF跨站请求伪造

CSRF(XSRF)尽管听起来很想XSS跨站脚本攻击,但是它于XSS完全不同。XSS是利用站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的站点。与XSS相比,CSRF攻击不大流行和难以防范,所以比XSS更具危险性。

以下是一个CSRF的例子

受害者Bob 在银行有一笔存款,通过对银行的网站发送请求http://bank.example/withdraw?account=bob&amount=1000000&for=bob2可以使Bob 把1000000 的存款转到bob2 的账号下。通常情况下,该请求发送到网站后,服务器会先验证该请求是否来自一个合法的session,并且该session 的用户Bob 已经成功登陆。

黑客Mallory 自己在该银行也有账户,他知道上文中的URL 可以把钱进行转帐操作。Mallory 可以自己发送一个请求给银行:http://bank.example/withdraw?account=bob& amount=1000000&for=Mallory。但是这个请求来自Mallory 而非Bob,他不能通过安全认证,因此该请求不会起作用。

这时,Mallory 想到使用CSRF 的攻击方式,他先自己做一个网站,在网站中放入如下代码:。并且通过广告等诱使Bob 来访问他的网站。当Bob 访问该网站时,上述url 就会从Bob 的浏览器发向银行,而这个请求会附带Bob 浏览器中的cookie 一起发向银行服务器。大多数情况下,该请求会失败,因为他要求Bob 的认证信息。但是,如果Bob 当时恰巧刚访问他的银行后不久,他的浏览器与银行网站之间的session 尚未过期,浏览器的cookie 之中含有Bob 的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,钱将从Bob 的账号转移到Mallory 的账号,而Bob 当时毫不知情。等以后Bob 发现账户钱少了,即使他去银行查询日志,他也只能发现确实有一个来自于他本人的合法请求转移了资金,没有任何被攻击的痕迹。而Mallory 则可以拿到钱后逍遥法外。

如何防止CSRF跨站请求伪造:

1. 对于web站点,将持久化的授权方法(例如cookie或者HTTP授权)切换为瞬时的授权方法(在每个form中提供隐藏field)。

2. “双提交”cookie。此方法只工作于Ajax请求,但它能够作为无需改变大量form的全局修正方法。如果某个授权的cookie在form post之前正被JavaScript代码读取,那么限制跨域规则将被应用。什么叫限制跨域规则呢?限制跨域规则就是:如果服务器需要在Post 请求体或者URL中包含授权cookie的请求,那么这个请求必须来自于受信任的域,因为其它域是不能从信任域读取cookie的。上面那个例子的受信任域就是银行网站的某个域,而Mallory发给Bob的链接不是受信任的域。

3. 使用Post代替Get。Post方式不会在web服务器和代理服务器日志中留下数据尾巴,然而Get方式却会留下数据尾巴。

4. 以上三点都是正对web站点的防御手段,第4点是从用户的角度的防御手段。通过在浏览其它站点前登出站点或者在浏览器会话结束后清理浏览器的cookie来防止CSRF 攻击。

目录遍历漏洞

目录遍历漏洞在国内外有不同的叫法(信息泄露漏洞、非授权文件包含漏洞、等等)。目录遍历漏洞就是在程序中没有过滤用户输入的../和./之类的目录跳转符,导致恶意用户可以通过提交目录跳转来遍历服务器上的任意文件,其危害可想而知。

如何防止目录遍历漏洞:

1. 权限控制

2. 对包含了恶意的符号或者空字节进行拒绝

3. 使用绝对路径+参数来控制访问目录,使其即使是越权或者跨越目录也是在指定的目录下

参数篡改

参数值窜改是网络攻击的一种形式,其中在URL中的某些参数或由用户输入的网页形式领域数据都在没有得到用户授权的情况下改变了。这导致浏览器指向一个不是用户想去的链接、网页或网站(尽管对随机观测者来说它们看上去几乎一样)。参数值篡改被犯罪者用来获取个人或商业信息。

如何防止参数篡改:

1. 对所有参数值进行验证

2. 根据session id进行迁移,参数使用服务器端的值

会话劫持

会话劫持就是在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行监听,甚至可以是代替某一方主机接管会话。

我们可以把会话劫持攻击分为两种类型:1)中间人攻击(Man In The Middle,简称MITM),2)注射式攻击(Injection)

中间人攻击:简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情

注射式攻击:这种方式的会话劫持比中间人攻击实现起来简单一些,它不会改变会话双方的通讯流,而是在双方正常的通讯流插入恶意数据

还可以把会话劫持攻击分为两种形式:1)被动劫持,2)主动劫持

被动劫持:在后台监视双方会话的数据流,丛中获得敏感数据

主动劫持:将会话当中的某一台主机“踢”下线,然后由攻击者取代并接管会话,这种攻击方法危害非常大,攻击者可以做很多事情

如何防止会话劫持:

1. 限制入网的连接

2. 设置你的网络拒绝假冒本地地址从互联网上发来的数据包

3. 加密也是有帮助的。FTP和Telnet协议是最容易受到攻击的。SSH是一种很好的替代方法

Web Services业务接口规范说明书

XXXX系统 Web Services业务接口规范说明书 拟制 审核 会签 批准 【公司名称】

版本历史

目录 1.范围 (1) 2.术语、定义和缩略语 (1) 2.1 术语、定义 (1) 2.2 缩略语 (1) 3.接口设计 (1) 3.1 接口公共参数 (1) 3.1.1请求参数 (1) 3.1.2返回参数 (2) 3.2 业务功能接口 (3) 3.2.1业务模块1 (3) 4.MD5加密 (6) 5.参考文献 (6)

1.范围 本规范文档主要适用于XXXX系统和其它业务系统信息数据的接入。 2.术语、定义和缩略语 2.1术语、定义 2.2缩略语 3.接口设计 3.1接口公共参数 接口服务器通过:http://IP:port/EIP/WebService/ 连接服务器,同时对外提供业务功能接口,接收的参数和返回的参数都用一定的xml格式进行封装。 3.1.1请求参数 1.请求类型为String类型

2.头部参数体head定义 请求参数的头部参数体header格式固定,定义如下:

3.请求参数体param定义 参数体param中的具体请求参数,根据不同的业务而不同,详见各业务接口。 3.1.2返回参数 1.返回类型为String类型

2.头部参数体head定义 返回参数的头部参数体header格式固定,定义如下: 3.返回值参数体result定义 参数体result中的具体返回参数,根据不同的业务而不同。详见各业务功能返回值参数体result定义。 注意:在value值标识为失败时,无论在任何业务功能下result都有可能为空。 4.返回value 值 <-- 注释 例如:

[为Web服务而生]Web服务是基于

[为Web服务而生]Web服务是基于 SOA和Web Service都是当前红得发紫的角色,Syti公司的Registry 6.0就较好地适合了这二者。 Systi Registry 6.0(以下简称SR)可以在红帽Linux、Sun Solaris 9以及Windows系列产品上使用。安装向导使得安装非常轻松,并且安装完毕后直接就可以使用,该产品采用嵌入式的Hypersonic SQL数据库,这也在一定程度上令安装更加容易。不过,为了能够广泛地支持用户的应用,它也支持Oracle、DB/2、Microsoft SQL、Sybase和PostgreSQL等多种数据库。 开发者可以以两种模式使用SR:当开发一项新的服务时,他们可以浏览或搜索注册中心来发现服务,这就促进了代码的再次使用,并能帮助开发者发现已有的、可直接用于生产的服务;另一种则是应用程序通过在运行期内查询注册中心,以便为它使用的服务获得终端数据。在这种模式下,该产品像远程过程调用(RPC)风格的应用程序里的注册中心一样运转,使开发者通过名字而不是内置的终端数据就能找到服务。 连同这两种模式一起,SR提供了两个不同的控制台:注册中心管理控制台(Registry Admin Console)和商业服务控制台(Business Service Console)。注册中心管理控制台被用来配置和管理注册中心自身,为了简单安装的目的,这个控制台一般来说很少被使用。商

业服务控制台是SR真正给企业带来价值的地方,也是会花费企业大量时间的地方。对开发者、体系结构设计者和商业用户来说,商业服务控制台是连接注册中心的主要接口。使用它,用户可以发布服务说明、管理已发布服务的元数据,比如说,指示出哪些服务正在开发中,哪些处于质量评价(QA)阶段,以及哪些在生产阶段等。 复制与集成 SR能够以单一模式被使用,但是通常情况下许多公司希望启动不止一个注册中心,以满足专门的要求。譬如,两个注册中心可以一前一后地合作运行――一个用作发布注册中心,通过该中心,开发者可以发布服务;而另一个注册中心可以充当发现注册中心,通过它,服务的使用者可以找到他们想采用的服务。 SR商业服务控制台界面如图

金蝶K3基于WebServices外部数据交换接口使用指南

金蝶K/3 基于WebServices 外部数据交换接口使用指南 目录 概述 (4) 总体说明 (4) 通过该说明文档,你可以了解到 (4) 该文档阅读的适用对象 (4) 外部数据交换服务的安装 (4) WebServices测试工具介绍 (5) 外部数据交换服务功能列表 (5) 公共服务(Public.asmx) (7) AisQuery服务 (7) GetAisType服务 (7) DeleteItemQuery服务 (8) DeleteItemUpdate服务 (9) 币别(Currency.asmx) (10) Query服务 (10) Update服务 (10) 计量单位(MeasureUnit.asmx) (12) Query服务 (12) Update服务 (12) 辅助资料(AssistDetail.asmx) (14) Query服务 (14) Update服务 (14) 科目(Account.asmx) (16) Query服务 (16) Update服务 (16) 凭证字(VoucherGroup.asmx) (18) Query服务 (18) Update服务 (18) 客户(Customer.asmx) (20) Query服务 (20) Update服务 (20) 部门(Department.asmx) (22)

Query服务 (22) Update服务 (22) 职员(Employee.asmx) (24) Query服务 (24) Update服务 (24) 物料或商品(Material.asmx) (26) Query服务 (26) Update服务 (26) 仓库(Stock.asmx) (28) Query服务 (28) Update服务 (28) 供应商(Supplier.asmx) (30) Query服务 (30) Update服务 (30) 分支机构(SubCompany.asmx) (32) Query服务 (32) Update服务 (32) 费用(Fee.asmx) (34) Query服务 (34) Update服务 (34) 工作中心(WorkCenter.asmx) (36) Query服务 (36) Update服务 (36) 工业订单与订单执行情况(InduSaleOrder.asmx) (38) QuerySaleOrder服务 (38) UpdateSaleOrder服务 (38) QueryOrderTrace服务 (39) 库存(InduStockData.asmx) (40) QueryWithBatch服务 (40) QueryWithOutBatch服务 (40) 销售发票(InduSaleInvoice.asmx) (42) QuerySaleInvoice服务 (42) 凭证(财务) (Voucher.asmx) (43) Query服务 (43) Update服务 (43) 收款单(ReceiveBill.asmx) (45) QueryReceiveBill服务 (45) 应收计划(ArApPlan.asmx) (46) QueryArApPlan服务 (46) 合同(Contract.asmx) (47) QueryContract服务 (47) 调用方式 (48) 通过现有工具(组件)进行访问 (48) Http方式 (49)

常用的webservice接口

商业和贸易: 1、股票行情数据WEB 服务(支持香港、深圳、上海基金、债券和股票;支持多股票同时查询) Endpoint:https://www.doczj.com/doc/e513793934.html,/WebServices/StockInfoWS.asmx Disco:https://www.doczj.com/doc/e513793934.html,/WebServices/StockInfoWS.asmx?disco WSDL:https://www.doczj.com/doc/e513793934.html,/WebServices/StockInfoWS.asmx?wsdl 支持香港股票、深圳、上海封闭式基金、债券和股票;支持多股票同时查询。数据即时更新。此中国股票行情数据WEB 服务仅作为用户获取信息之目的,并不构成投资建议。支持使用| 符号分割的多股票查询。 2、中国开放式基金数据WEB 服务 Endpoint:https://www.doczj.com/doc/e513793934.html,/WebServices/ChinaOpenFundWS.asmx Disco:https://www.doczj.com/doc/e513793934.html,/WebServices/ChinaOpenFundWS.asmx?disco WSDL:https://www.doczj.com/doc/e513793934.html,/WebServices/ChinaOpenFundWS.asmx?wsdl 中国开放式基金数据WEB 服务,数据每天15:30以后及时更新。输出数据包括:证券代码、证券简称、单位净值、累计单位净值、前单位净值、净值涨跌额、净值增长率(%)、净值日期。只有商业用户可获得此中国开放式基金数据Web Services的全部功能,若有需要测试、开发和使用请QQ:8698053 或联系我们 3、中国股票行情分时走势预览缩略图WEB 服务 Endpoint: https://www.doczj.com/doc/e513793934.html,/webservices/ChinaStockSmallImageWS.asmx Disco: https://www.doczj.com/doc/e513793934.html,/webservices/ChinaStockSmallImageWS.asmx?disco WSDL: https://www.doczj.com/doc/e513793934.html,/webservices/ChinaStockSmallImageWS.asmx?wsdl 中国股票行情分时走势预览缩略图WEB 服务(支持深圳和上海股市的全部基金、债券和股票),数据即时更新。返回数据:2种大小可选择的股票GIF分时走势预览缩略图字节数组和直接输出该预览缩略图。 4、外汇-人民币即时报价WEB 服务 Endpoint: https://www.doczj.com/doc/e513793934.html,/WebServices/ForexRmbRateWebService.asmx Disco:https://www.doczj.com/doc/e513793934.html,/WebServices/ForexRmbRateWebService.asmx?disco

做一个c#的webservice服务接口

这是一个用Java调用C#版WebService接口的例子: C#接口: using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Web.Services.Description; [WebService(Namespace = " https://www.doczj.com/doc/e513793934.html,/ " )] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service () ... { // 如果使用设计的组件,请取消注释以下行 // InitializeComponent(); } [SoapRpcMethod(Action = " https://www.doczj.com/doc/e513793934.html,/Add " , RequestNamespace = " https://www.doczj.com/doc/e513793934.html,/T " , ResponseNamespace = " https://www.doczj.com/doc/e513793934.html,/T " , Use = SoapBindingUse.Literal)] [WebMethod] public int Add( int a, int b) ... { return a + b; } [SoapRpcMethod(Action = " https://www.doczj.com/doc/e513793934.html,/Hello " , RequestNamespace = " https://www.doczj.com/doc/e513793934.html,/T " , ResponseNamespace = " https://www.doczj.com/doc/e513793934.html,/T " , Use = SoapBindingUse.Literal)] [WebMethod] public String HelloWorld()

查询业务平台WebServices接口说明v1.1

金电联行(北京)信息技术有限公司 查询业务平台WebServices 接口使用说明 版本 V1.0 2015/4/27

一、目录 一、目录 (2) 二、介绍 (2) 1.简介 (2) 2.说明 (2) 三、服务端说明 (2) 1简介 (2) 3.说明 (2) 四、客户端调用方法说明 (3) 1调用方法 (3) 4.参数描述 (3) 5.返回格式说明 (4) 五、加密说明 (24)

六、注意事项 (25) 1限制 (25) 二、介绍 1.简介 此接口适应于相关行业的用户对各数据进行查询,不需要人工干预,由用户webservices 客户端系统自动处理。 2.说明 使用此接口需要相应的客户ID、客户密钥等。

三、服务端说明 1简介 JDK:Java 7.0 及以上 应用服务器:Tomcat 7 WebServices 沙箱测试地址: https://https://www.doczj.com/doc/e513793934.html,/webservice/apiService?wsdl 3.说明 客户ID及客户密钥、相关的权限等需要向金电联行申请四、客户端调用方法说明 1调用方法 描述:用户直接通过提供的WebServices 地址,客户ID 和加密后的密文直接调用 ,由客户技术人员来开发客户 端程序。

调用方法名称:query 调用方法形式: APIData query( int dataType, String customerId, String cipherText, String enterpriseId, int pageSize, int pageNumber ) 需要客户开发人员对WebServices 非常了解。4.参数描述 方法参数: 字段名称字段描述 dataType数据类型 customerId 客户ID cipherText 密文(加密方法详见加密说明) enterpriseId企业代码 pageSize单页面大小 pageNumber页码 dataType参数:(目前对测试模式下开放的接口) 字段可选值描述 1企业销售记录 2企业房产信息

webServices安全验证方案

一、使用WSE实现Web Serivices安全验证 WSE3.0全称是Web Services Enhancements3.0。是微软针对Web Service推出的安全实现平台,包括为了实现安全认证和加密特定的类库。WSE3.0的很多安全实现方式都能在WCF 框架里找到影子。WebSerivice 2.0 支持WS-I Basic Profile 1.1 和SOAP 1.2。这意味着,它支持XML 1.0、XML 架构定义(XSD)、Web 服务描述语言(WSDL)、SOAP 1.1、SOAP 1.2 以及编译时的基本配置文件一致性验证。WSE 3.0 通过提供对某些更高级的WS-* 协议的支持,来补充WebSerivice 2.0 的功能。 二、使用SoapHeader实现Web Serivices安全验证 在调用Web Serivices时,往往需要身份验证,使得通过验证的用户才能调用你Web Serivices 中的方法.当然你可以通过将参数添加到每个需要自定义身份验证方案的Web services方法中去,这需要花费很大的精力.IssueVision 中使用了非常常用而且有效便捷的方法-----使用SoapHeader来实现自定义身份验证数据的传递. SoapHeader提供了一种方法,用于将数据传递到Web services方法或从Web services 方法传递数据,条件是该数据不直接与Web services 方法的主功能相关. 你不用将参数添加到每个需要自定义身份验证方案的Web services 方法,而可以将引用从SoapHeader派生的类的SoapHeaderAttribute应用于每个Web services 方法。从SoapHeader派生的类的实现处理该自定义身份验证方案. IssueVision 就是利用SoapHeader的这种能力来实现自定义身份验证数据传递的. 例:看demo SoapHeader缺点: 上面所说的是如何保证Web Service的授权使用,但是在实际使用中,客户端传输到Web Service的用户名和密码都是以需要进行加密。因为Http的数据传输是以明文方式进行传输的,如果不加密,很可能被侦听到数据的传输而得到调用Web Service的用户名和密码。解决方案:采用DES的加密方式来调用Web Service 1、对称加密 a)例:看demo 2、非对称加密 例:看demo 什么是数字签名?数字签名同我们在合同上的签字一样,接收方可以用它来证明收到的数据或文件是由你发送的。举个例子:假设发送方需要将一串数据D发送给接收方,那么接收方如何判断数据D是发送方发送的呢? Step 1:发送方先产生成一对密钥,并将公钥公开给接收方;

WebMethods_WebServices-开发指导

webMethods, Inc. 3930 Pender Drive Fairfax, VA 22030 USA 703.460.2500 https://www.doczj.com/doc/e513793934.html, Web Services Developer’s Guide VERSION6.1

webMethods Administrator, webMethods Broker, webMethods Dashboard, webMethods Developer, webMethods Glue, webMethods Fabric, webMethods Installer, webMethods Integration Server, webMethods Mainframe, webMethods Manager, webMethods Mobile, webMethods Modeler, webMethods Monitor, webMethods Optimize, webMethods Trading Networks, webMethods Workflow, and the webMethods logo are trademarks of webMethods, Inc. "webMethods" is a registered trademark of webMethods, Inc. Acrobat, Adobe, and Reader are registered trademarks of Adobe Systems Incorporated. Amdocs and ClarifyCRM are registered trademarks of Amdocs Ltd. Ariba is a registered trademark of Ariba Inc. BEA is a registered trademark, and BEA WebLogic Platform and BEA WebLogic Server are trademarks of BEA Systems, Inc. BMC Software and PATROL are registered trademarks of BMC Software, Inc. BroadVision is a registered trademark of BroadVision, Inc. Chem eStandards and CIDX are trademarks of Chemical Industry Data Exchange. Unicenter is a registered trademark of Computer Associates International, Inc. Kenan and Arbor are registered trademarks of CSG Systems, Incorporated. SNAP-IX is a registered trademark, and Data Connection is a trademark of Data Connection Ltd. DataDirect, DataDirect Connect, and SequeLink are registered trademarks of DataDirect Technologies. D&B and D-U-N-S are registered trademarks of D&B, Inc. Entrust is a registered trademark of Entrust. Hewlett-Packard, HP, HP-UX, and OpenView are trademarks of Hewlett-Packard Company. i2 is a registered trademark of i2 Technologies, Inc. AIX, AS/400, CICS, DB2, IBM, Infoprint, Informix, MQSeries, OS/390, OS/400, RACF, RS/6000, SQL/400, S/390, System/390, VTAM, and WebSphere are registered trademarks; and Communications System for Windows NT, IMS, MVS, SQL/DS, Universal Database, and z/OS are trademarks of IBM Corporation. JBoss and JBoss Group are trademarks of Marc Fleury under operation by JBoss Group, LLC. J.D. Edwards and OneWorld are registered trademarks, and WorldSoftware is a trademark of J.D. Edwards. Linux is a registered trademark of Linus Torvalds and others. X Window System is a trademark of Massachusetts Institute of Technology. MetaSolv is a registered trademark of Metasolv Software, Inc. ActiveX, Microsoft, Outlook, Visual Basic, Windows, and Windows NT are registered trademarks; and SQL Server is a trademark of Microsoft Corporation. Teradata is a registered trademark of NCR. Netscape is a registered trademark of Netscape Communications Corporation. New Atlanta and ServletExec are trademarks of New Atlanta Communications, LLC. CORBA is a registered trademark of Object Management Group, Inc. UNIX is a registered trademark of Open Group. Oracle is a registered trademark of Oracle Corporation. PeopleSoft and Vantive are registered trademarks, and PeopleSoft Pure Internet Architecture is a trademark of PeopleSoft, Inc. Infranet and Portal are trademarks of Portal Software, Inc. RosettaNet is a trademark of “RosettaNet,” a non-profit organization. SAP and R/3 are trademarks or registered trademarks of SAP AG. Siebel is a trademark of Siebel Systems, Inc. SPARC and SPARCStation are trademarks of SPARC International, Inc. SSA Global is a trademark and SSA Baan is a registered trademark of SSA Global Technologies, Inc. EJB, Enterprise JavaBeans, Java, Java Naming and Directory Interface, JavaServer Pages, JDBC, JSP, J2EE, Solaris, Sun Microsystems, and SunSoft are trademarks of Sun Microsystems, Inc. SWIFT and SWIFTNet are trademarks of S.W.I.F.T. SCRL. Sybase is a registered trademark of Sybase, Inc. UCCnet is a trademark of UCCnet. eBusinessReady is a trademark of Uniform Code Council, Inc. (UCC) and Drummond Group, Inc. (DGI). Verisign is a registered trademark of Verisign. VERITAS, VERITAS SOFTWARE, and VERITAS Cluster Server are trademarks of VERITAS Software. W3C is a registered trademark of World Wide Web Consortium. All other marks are the property of their respective owners. Copyright ? 2004 by webMethods, Inc. All rights reserved, including the right of reproduction in whole or in part in any form. Document ID: DEV-WS-DG-61-20040116

WebServices 简介超牛

WebServices 简介 先给出一个概念SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为SOA 是包含了运行环境,编程模型, 架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境, 涵盖服务的整个生命周期。而在SOA 的架构风格中,服务是最核心的抽象手段。 SOA 中的服务是构建在一些列基于开放标准的基础之上的, Web 服务定义了如何在异构系统之间实现通信的标准化方法, 从而就使得Web 服务可以跨越运行平台和实现语言, 同时也使得Web 服务成为了实现SOA 中服务的主要技术。 至于SOA 的话,太高深的技术,这里不予讨论(嘿嘿),本篇博文只介绍WebServices 这项技术。 引子 有没有一种办法可以实现跨应用程序进行通信和跨平台进行通信呢? 换句话说,就是有什么办法可以实现我的应用程序A 可以和应用程序B 进行通信呢? 或者说是,我用Java 写的应用程序和用 . Net 开发的应用程序之间进行通信呢? 很多时候,上面提到的这些,我们是必须要使用的,比如,一个跨应用程序吧, 拿腾讯QQ 来说吧,我估计每一个人都用过腾讯QQ 上面的天气预报工具吧!!!

上面的这个天气预报功能是如何实现的呢? 有一种办法,那就是腾讯公司放个卫星上天,并且在公司中成立一个气象部门,天天关注于天气,然后每时每刻更新腾讯QQ 上的这个天气预报信息, 确实,这种办法确实行得通,不过,要真这样做的话,估计马化腾也该被踢出去了(哪有这么蠢啊?), 那么上面这个是如何实现的呢?别急,且听我慢慢道来~~~ 然后,我们再来看看跨平台这个东东又是什么呢? 这里主要是拿 . Net 平台和Java 平台来说明例子, 假若,有两个公司,每个公司呢都有自己的一个项目,一个公司呢使用 . Net 开发,一个呢,使用Java 开发, 恩,本来呢,这两个是相互独立的,进水不犯河水,但是有一天,突然,这两个公司给合并了,合并后的老总发现,如果把两个项目结合起来将会大大的赚一笔,为此,如何做? 因为要把两个项目结合在一起,那么这两个项目之间总应该通通信吧!!! 可这两个项目又是基于不同的平台,怎么通信呢?麻烦了吧!!! 而后再看一种情况,就是比如一个公司使用的服务器是Windows Server 2008,

相关主题
文本预览
相关文档 最新文档