- 学习 Web 服务
- Web 服务 - 首页
- 什么是 Web 服务?
- 为什么要使用 Web 服务?
- Web 服务 - 特征
- Web 服务 - 架构
- Web 服务 - 组件
- Web 服务 - 示例
- Web 服务 - 安全性
- Web 服务 - 标准
- Web 服务 - 总结
- Web 服务资源
- Web 服务 - 问题与解答
- Web 服务 - 快速指南
- Web 服务 - 有用资源
Web 服务 - 安全性
安全性对于 Web 服务至关重要。但是,XML-RPC 和 SOAP 规范都没有明确的安全或身份验证要求。
Web 服务存在三个特定的安全问题:
- 机密性
- 身份验证
- 网络安全
机密性
如果客户端向服务器发送 XML 请求,我们如何确保通信保持机密?
答案在这里:
- XML-RPC 和 SOAP 主要运行在 HTTP 之上。
- HTTP 支持安全套接字层 (SSL)。
- 可以通过 SSL 对通信进行加密。
- SSL 是一项成熟的技术,并且已广泛部署。
单个 Web 服务可能包含一系列应用程序。例如,一个大型服务可能会将三个其他应用程序的服务绑定在一起。在这种情况下,SSL 不够;需要在服务路径上的每个节点对消息进行加密,并且每个节点都代表链中潜在的薄弱环节。目前,还没有针对此问题的公认解决方案,但 W3C XML 加密标准是一个很有前景的解决方案。此标准为加密和解密整个 XML 文档或 XML 文档的部分内容提供了一个框架。您可以在 www.w3.org/Encryption 查看。
身份验证
如果客户端连接到 Web 服务,我们如何识别用户?用户是否有权使用该服务?
可以考虑以下选项,但对于强大的身份验证方案没有明确的共识。
HTTP 包含对基本身份验证和摘要身份验证的内置支持,因此可以像目前保护 HTML 文档一样保护服务。
SOAP 数字签名 (SOAP-DSIG) 利用公钥加密技术对 SOAP 消息进行数字签名。它使客户端或服务器能够验证另一方的身份。请在 www.w3.org/TR/SOAP-dsig 查看。
结构化信息标准促进组织 (OASIS) 正在开发安全断言标记语言 (SAML)。
网络安全
目前还没有简单的答案来解决这个问题,并且它一直是争论的焦点。目前,如果您真的打算过滤掉 SOAP 或 XML-RPC 消息,一种可能性是过滤掉所有将内容类型设置为 text/xml 的 HTTP POST 请求。
另一种方法是过滤 SOAPAction HTTP 标头属性。防火墙供应商目前也在开发专门用于过滤 Web 服务流量的工具。
广告