实现Web服务/API最安全的方法是什么? [已关闭]

问题描述 投票:0回答:5

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

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

我担心的是,将用户名和密码作为输入进行明文传输是危险的,并且令牌也可能被窃取并被恶意重复使用。

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

重点是,它尽可能开放,供世界上的任何人使用,但从定义上来说仍然是安全的。 文档将可供所有人使用。

c# .net web-services soap
5个回答
4
投票

始终有 WS-Security 标准:

WS-安全(维基百科)

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

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

它提供了多种方法来在通过网络发送 SOAP 信封之前对其进行加密,从而安全地传输内部数据。


3
投票

使用 SSL 连接怎么样?


3
投票

不要编写自己的加密。

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

使用 WCF,这被形式化为 TransportWithMessageCredential(只需搜索)。当然,您可以使用证书、联合、kerberos 等...

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


0
投票

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


0
投票

为什么不使用标准的 WS-Security 来实现这一点?

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

© www.soinside.com 2019 - 2024. All rights reserved.