实现Web Services / API最安全的方法是什么?

时间:2009-06-23 13:56:29

标签: c# .net web-services api soap

我有一个网站,其中包含用户及其数据。

实施Web服务/ API最安全的方法是什么,以便用户的登录凭据和数据安全? oAuth不是一个真正的选择,因为使用不一定在其他网络应用程序中。

我担心的是,将用户名和密码作为输入是明确传输的危险,并且令牌也可能被盗并被恶意重用。

我是否需要提出自己的加密和解密数据的方法,或者是否已经在使用常见的做法?

重点是世界上的任何人都尽可能地使用它,但是根据定义是安全的。每个人都可以使用文档。

5 个答案:

答案 0 :(得分:4)

始终存在WS-Security标准:

WS-Security (Wikipedia)

.NET通过Microsoft Web服务增强功能在.NET 1.1和.NET 2.0中实现:

WSE 2.0 (.NET 1.1)
WSE 3.0 (.NET 2.0)

它提供了各种方法来加密SOAP Envelope,然后通过网络发送,安全地传输数据。

答案 1 :(得分:3)

使用SSL连接怎么样?

答案 2 :(得分:3)

不要编写自己的加密。

一点SSL有什么问题?对于“常规”WSDL / SOAP客户端(asmx),使用SOAP标头(通过SSL)并不罕见。

使用WCF,这将形式化为TransportWithMessageCredential(仅搜索)。当然,你可以使用证书,联邦,kerberos等......

除了传输安全性(SSL)之外,WCF还支持基于消息的安全性 - 添加了一项功能,您可以加密 安全标头。就个人而言,我喜欢使用TransportWithMessageCredential(即SSL)保持简单。

答案 3 :(得分:0)

为什么不使用标准WS-Security

编辑:只想添加Justin的答案,它也在WCF中实现。

答案 4 :(得分:0)

与第三方共享的任何身份验证方法都可以利用,您必须在某处绘制一条线。使用HTTP / S和WS- *服务来保护连接可能是您最好的方法。如果该服务仅由具有固定IP地址的已知系统访问,则使用防火墙进一步保护您的盒子免受外部干扰。