我有一个网站,其中包含用户及其数据。
实施Web服务/ API最安全的方法是什么,以便用户的登录凭据和数据安全? oAuth不是一个真正的选择,因为使用不一定在其他网络应用程序中。
我担心的是,将用户名和密码作为输入是明确传输的危险,并且令牌也可能被盗并被恶意重用。
我是否需要提出自己的加密和解密数据的方法,或者是否已经在使用常见的做法?
重点是世界上的任何人都尽可能地使用它,但是根据定义是安全的。每个人都可以使用文档。
答案 0 :(得分:4)
始终存在WS-Security标准:
.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地址的已知系统访问,则使用防火墙进一步保护您的盒子免受外部干扰。