📜  Web服务-安全性

📅  最后修改于: 2020-10-17 06:25:28             🧑  作者: Mango


安全性对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服务流量的工具。