Web Services 指南之:Web Services 的安全
2015-12-18 20:17
274 查看
安全对于 Web Services 来讲至关重要。但是,不管是 XML-RPC 还是 SOAP 规范都没有做任何明确的安全或认证要求。
有三个特定的与 Web Services 相关的安全问题:
保密性
认证
网络安全
答案在这里:
XML-RPC 和 SOAP 主要运行于 HTTP 之上
HTTP 支持 SSL
通信可以通过 SSL 进行加密
SSL 是一个久经考验并被广泛应用的技术
单个的 web service 可能会由一系列的应用组成。例如,一个大型服务可能会把三个其他应用的服务捆绑在一起。在这种情况下,SSL 是不够的;每个服务路径的节点都需要对消息进行加密,每个节点都代表一个潜在的薄弱的环节。目前为止还没有就此问题达成一个一致的解决方案,但是一个很有前景的解决方案是 W3C XML 加密标准。这一标准为整个或部分 XML 文档的加密和解密提供了一个框架。更多信息查看 http://www.w3.org/Encryption。
可以考虑以下选项,但目前还没有达成一个明确的强大授权方案。
HTTP 包含内置基本和摘要式身份验证支持,因此服务可以像目前 HTML 文档的保护那样进行保护。
SOAP 数字签名(SOAP-DSIG)使用公钥来对 SOAP 消息进行数字签名。它允许客户端或服务器端验证对方的身份。更多信息参考 http://www.w3.org/TR/SOAP-dsig。
结构化信息标准促进组织(OASIS)目前正致力于安全断言标记语言(SAML)的研发。
另外一个选择是过滤 SOAPAction 的 HTTP 头属性。防火墙厂商们目前也在致力于用于过滤 web service 流量的工具的开发。
原文链接:http://www.tutorialspoint.com/webservices/web_services_security.htm
有三个特定的与 Web Services 相关的安全问题:
保密性
认证
网络安全
保密性
如果一个客户端发送一个 XML 请求到一台服务器,我们能否保证通信过程的保密性?答案在这里:
XML-RPC 和 SOAP 主要运行于 HTTP 之上
HTTP 支持 SSL
通信可以通过 SSL 进行加密
SSL 是一个久经考验并被广泛应用的技术
单个的 web service 可能会由一系列的应用组成。例如,一个大型服务可能会把三个其他应用的服务捆绑在一起。在这种情况下,SSL 是不够的;每个服务路径的节点都需要对消息进行加密,每个节点都代表一个潜在的薄弱的环节。目前为止还没有就此问题达成一个一致的解决方案,但是一个很有前景的解决方案是 W3C XML 加密标准。这一标准为整个或部分 XML 文档的加密和解密提供了一个框架。更多信息查看 http://www.w3.org/Encryption。
认证
如果一个客户端连接到一个 web service,我们该如何识别用户?该用户被授权使用服务了吗?可以考虑以下选项,但目前还没有达成一个明确的强大授权方案。
HTTP 包含内置基本和摘要式身份验证支持,因此服务可以像目前 HTML 文档的保护那样进行保护。
SOAP 数字签名(SOAP-DSIG)使用公钥来对 SOAP 消息进行数字签名。它允许客户端或服务器端验证对方的身份。更多信息参考 http://www.w3.org/TR/SOAP-dsig。
结构化信息标准促进组织(OASIS)目前正致力于安全断言标记语言(SAML)的研发。
网络安全
这个问题目前还没有一个轻松的答案,它一直是有一个具有争议的问题。目前,如果你真想对 SOAP 或者 XML-RPC 消息进行过滤,一个可行的办法就是去将所有 HTTP POST 请求进行过滤,将其内容类型设置为 text/xml。另外一个选择是过滤 SOAPAction 的 HTTP 头属性。防火墙厂商们目前也在致力于用于过滤 web service 流量的工具的开发。
原文链接:http://www.tutorialspoint.com/webservices/web_services_security.htm
相关文章推荐
- 【Android】AndroidStudio上传代码到SVN及从SVN中检出代码
- 【C++11】新特性——引入nullprt
- 使用JDB调试Java程序
- Vim编辑器详解
- 系统设计师之路·第三节·一花一世界,一叶一菩提——无处不在的设计思想
- 08-1 UIControl 及其子类 UISegmentedControl 、UISlider
- Android(七) Handler、多线程、buddle
- 虚拟化三剑客专题-XenServer(下)
- Hadoop 产生背景
- linux学习笔记(13)终端清屏
- Codeforces 325D
- 元素定位
- find、locate文件查找命令详解
- 积分图像(Integral Image)
- crawler4j爬虫技术获取a标签的title及链接
- 《android studio 1》认识Activity组件
- Android Studio 集成JPUSH推送
- 初学者学习编程语言的方法
- linux学习笔记(12)man ascii/cal/xxd/ssh
- UIScrollView的使用