WEB Service和WEB Service安全考虑

来源:互联网 发布:windows照片查看器重装 编辑:程序博客网 时间:2024/05/16 07:12

WEB Service和WEB Service安全考虑

WEB Service

面向服务的架构(service oriented architecture) 使于不同系统集成共享数据和功能
尤其适合不想暴漏数据模型和程序逻辑而访问数据的场景
无页面

两种类型的WEB Service

Simple object access protocol (SOAP)

传统的Web service开发方法,xm是唯一的数据交换格式
要求安全性的应用更多采用

RESTful(Representational State Transfer architectureREST )

目前更多被采用的轻量webservice,JSON是首选数据交换格式
——————————————————————————

两种类型的WEB Service对比

1.成熟度(总的来说SOAP在成熟度上优于REST)
SOAP对于异构环境服务发布和调用,以及厂商的支持都已经达到了较为成熟的情况。
REST国外很多大网站都发布了自己的开发API,很多都提供了SOAP和REST两种Web Service,但是由于REST只是一种基于Http协议实现资源操作的思想,因此各个网站的REST实现都自有一套。

2.效率和易用性(REST更胜一筹)
SOAP协议对于消息体和消息头都有定义,同时消息头的可扩展性为各种互联网的标准提供了扩展的基础,
由于SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。

REST被人们的重视,其实很大一方面也是因为其高效以及简洁易用的特性。这种高效一方面源于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了Http最初的应用协议设计理念。
同时,REST很好的融合当前Web2.0的很多前端技术来提高开发效率。
例如:很多大型网站开放的REST风格的API都会有多种返回形式(XML,JSON,RSS,ATOM)等形式。

3.安全性
SOAP在安全方面使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持,.net ,php ,java 都已经对其有了很好的支持。
REST 开放REST风格API的网站主要分成两种:
一种是自定义了安全信息封装在消息中,另外一种就是靠硬件SSL来保障,这只能够保证点到点的安全,如果是需要多点传输的话SSL就无能为力了。
—————————————————————————

WEB Service安全考虑

1.使用API key或session token实现和跟踪身份认证
2.身份认证由服务器完成,而非客户端(js查看源代码可以看到加密情况,因此不建议)
3.API key.用户名、Session token永远不要通过URL发送(抓包工具可以看到)
4.RESTful默认不提供任何安全机制,需要使用SSL/TLS保护传输数据安全
5.SOAP提供强于HTTPS的WS-security机制
6.使用OAuth 或HMAC进行身份验证,HMAC身份认证使用C/S共享的密钥加密API KEY
7.RESTfu应只允许身份认证用户使用PUT、DELETE方法
8.使用随机token防止CSRF攻击
9.对用户提交参数过滤,建议布署基于严格白名单的方法
10.报错信息消毒
11.直接对象引用应严格身份验证(电商公司以ID作为主索引)

原创粉丝点击