【问题标题】:What is the safest way to implement Web Services / API? [closed]实现 Web 服务/API 最安全的方法是什么? [关闭]
【发布时间】:2010-11-05 04:27:45
【问题描述】:

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

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

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

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

重点在于它尽可能开放,供世界上任何人使用,但从定义上来说还是安全的。每个人都可以使用文档。

【问题讨论】:

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


    【解决方案1】:

    你为什么不使用标准的WS-Security呢?

    编辑:只是想添加到贾斯汀的答案,它也在WCF 中实现。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 用支持它的文档打开。
      【解决方案3】:

      总是有 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 在线发送之前对其进行加密的各种方法,从而安全地传输内部的数据。

      【讨论】:

        【解决方案4】:

        不要自己编写加密。

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

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

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

        【讨论】:

          【解决方案5】:

          如何使用 SSL 连接?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-03-05
            • 2012-05-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-12-07
            相关资源
            最近更新 更多