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