【发布时间】:2015-03-27 08:37:20
【问题描述】:
我正在开发一个 REST WCF Web 服务,我的客户端将使用 HTTP 调用该服务。用户将使用用户名和密码进行身份验证(基本身份验证) 我有以下几个问题。
1.如何保护我的用户名和密码? 在互联网上搜索时,许多人建议使用 HTTPS/OAUTH/OPENID。我觉得以下是使用任何这个的冲突
- OAUTH/OPENID-> 这需要第 3 方对我的用户进行身份验证。如果我只将用户详细信息存储在我的系统中怎么办?无论如何,我可以在这样的功能中实现 oAuth 吗?根据我的假设。 OAuth 使用 Token 对用户进行身份验证,如何避免中间人攻击。说如果攻击者获得令牌怎么办,或者如果他获得整个 URL 怎么办——你能向服务器发出请求吗?
- HTTPS:根据互联网上的许多评论,这是最好的。我很确定 HTTPS 将保护客户端和服务器之间的数据传输,但我想知道它是否也保护 URL(我们存储用户名和密码的位置)。??
。
【问题讨论】:
-
无论您做什么,URL 中的用户名和密码似乎都是安全故障 - URL 进入日志等。将它们放在正文中不太糟糕(更好:使用摘要身份验证;最好:oauth等等。)。在所有情况下都使用 HTTPS(如果只是为了它提供的服务器验证,很难证明任何 API 都需要身份验证,而不是今天的所有 HTTPS。
标签: c# wcf security authentication oauth