我无论如何都不是安全专家,但我喜欢创建 REST 风格的 Web 服务。
在创建需要确保其传输的数据安全的新服务时。我们已经就哪种方法更安全进行了辩论——REST 与 HTTPS 或 SOAP WS 与 WS-Security。
我的印象是我们可以对所有的 Web 服务调用使用 HTTPS,而且这种方法是安全的。我的看法是,“如果 HTTPS 对银行和金融网站来说足够好,那对我来说就足够好了”。再说一次,我不是这个领域的专家,但我认为这些人已经对这个问题进行了相当多的思考并且对 HTTPS 很满意。
一位同事不同意并说 SOAP 和 WS-Security 是唯一的出路。
网络似乎无处不在。
也许这里的社区可以权衡每个人的利弊?谢谢!
HTTPS 保护了通过网络传输消息的安全,并为客户端提供了有关服务器身份的一些保证。这对您的银行或在线股票经纪人来说很重要。他们对验证客户端的兴趣不在于计算机的身份,而在于您的身份。因此,卡号、用户名、密码等用于对您进行身份验证。然后通常会采取一些预防措施来确保提交的内容没有被篡改,但总的来说,会话中发生的任何事情都被视为由您发起。
WS-Security 提供从消息创建到消息使用的机密性和完整性保护。因此,不是确保通信内容只能由正确的服务器读取,而是确保它只能由服务器上的正确进程读取。而不是假设安全发起的会话中的所有通信都来自经过身份验证的用户,每个通信都必须签名。
这里有一个涉及裸体摩托车手的有趣解释:
https://docs.microsoft.com/archive/blogs/vbertocci/end-to-end-security-or- why-you-shouldnt-drive-your-motorcycle- naked
因此 WS-Security 提供了比 HTTPS 更多的保护,而 SOAP 提供了比 REST 更丰富的 API。我的观点是,除非您真的需要额外的功能或保护,否则您应该跳过 SOAP 和 WS-Security 的开销。我知道这有点逃避,但是关于实际上有多少保护是合理的(不仅仅是建造什么很酷)需要由那些熟悉这个问题的人来决定。