我计划开发一个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服务使用者可以使用上面提到的任何编程语言和设备,我们(双方)如何通过加密方法相互理解?
答案 0 :(得分:1)
为了实现安全通信,您可能会猜到很长的历史(也许是从数字通信诞生之日起?)。在您的问题中,请考虑https是您可以依赖的必须做的最低安全标准。
此外,您可以考虑两件事。
GET
密码。几乎所有的Web服务都将密码视为散列方式(用几种数学加密编写)。所以它只能比较,不能读回来。最后,我强烈建议您阅读一本书来阅读"Pro ASP.NET Web Api Security" (amazon link)。它将为您提供足够的知识,以便在您的技术领域做出决定。