使用REST Web Api保护敏感数据

时间:2015-02-28 14:35:24

标签: c# asp.net-web-api

我计划开发一个Asp.Net/C# RESTful Web Api 2项目。 REST动作之一是接收"用户名"和#34;密码"用GET方法。 "密码"的值传递的查询字符串需要受到REST客户端程序员/消费者的保护。 "密码"传递给查询字符串(请参阅下面的示例REST调用)是从任何非技术用户输入的敏感数据 REST客户端程序员谁正在使用REST客户端程序员& #39;软件应用。

REST客户端程序员是RESTful Web服务使用者,他们在任何设备平台和任何编程语言(Java,C ++或Object-C,C,PHP等)中编写软件应用程序。

我应该使用 HTTPS 协议(而不是HTTP)来托管我的Asp.Net Rest Web Api服务。并获得一个GET调用来获取"密码"从客户/消费程序员看起来像:

https://www.mycompanyhost.com/account?username=abc&password=some_password

我的问题:

1 /使用 https 协议是否足以保证我的Web Api服务端接收敏感数据,以便消费者/客户端发送敏感数据?

2 /如果https协议不够安全,那么我如何作为Web服务提供者和服务使用者/程序员来保护敏感数据,如"密码"正如我提到的那样?

对我来说,声音很复杂:

如果Rest Web服务使用者使用某种加密方法/算法,那么在我的Rest服务提供者方面,我如何理解相同的加密方法/算法来解密"密码"?

作为我使用C#的提供商,但是Web服务使用者可以使用上面提到的任何编程语言和设备,我们(双方)如何通过加密方法相互理解?

1 个答案:

答案 0 :(得分:1)

为了实现安全通信,您可能会猜到很长的历史(也许是从数​​字通信诞生之日起?)。在您的问题中,请考虑https是您可以依赖的必须做的最低安全标准。

此外,您可以考虑两件事。

  • 我不知道你为什么要从服务器获得GET密码。几乎所有的Web服务都将密码视为散列方式(用几种数学加密编写)。所以它只能比较,不能读回来。
  • 您决定选择哪种加密算法。 .NET中有许多加密/解密库提供程序。我建议你购买并申请其中一个。

最后,我强烈建议您阅读一本书来阅读"Pro ASP.NET Web Api Security" (amazon link)。它将为您提供足够的知识,以便在您的技术领域做出决定。