首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安全地向RESTFUL API提供凭据

安全地向RESTFUL API提供凭据
EN

Stack Overflow用户
提问于 2009-06-03 13:15:57
回答 4查看 9.7K关注 0票数 6

我已经创建了一个RESTful服务器应用程序,它位于有用的URL上并为请求提供服务,比如www.site.com/get/someinfo。它是在春天建造的。

但是,这些访问是受密码保护的。我现在正在构建一个客户端应用程序,它将连接到这个RESTful应用程序,并通过一个网址请求数据。如何传递凭据?目前,它只是向用户弹出用户名/密码框,但我希望用户能够在客户端应用程序的框中键入用户名和密码,并在客户端应用程序请求数据时让客户端应用程序将凭据提供给RESTful应用程序。客户端是使用Struts构建的。

干杯

编辑-我认为我的问题还不够清楚。我已经强制HTTPS,我的问题更多,在代码中,当我从www.site.com/get/someinfo请求数据时,我如何在发出请求的同时传递我的凭据?

EN

回答 4

Stack Overflow用户

发布于 2009-06-05 03:41:15

你或多或少有3个选择:

  1. HTTP Auth
  2. Roll您自己的协议,最好是基于
  3. OAuth

HMAC质询/响应

OAuth目前容易受到网络钓鱼攻击的变体的影响,这种攻击在很大程度上是目标无法检测到的。因此,在修改协议之前,我不建议这样做。

OAuth也应该是一个关于设计安全协议有多么困难的教训,所以我在犹豫是否推荐你自己的路线。

剩下的就是HTTP身份验证,如果您能使用它,它可能是最好的。

尽管如此,互联网上几乎所有的东西都使用基于表单的身份验证,而且许多人甚至不会为了传输级别的安全而使用https,所以也许简单地以明文发送密码文本对您的目的来说已经“足够好”了。尽管如此,我仍然鼓励使用https,因为这至少减少了对中间人攻击的危险。

票数 5
EN

Stack Overflow用户

发布于 2009-06-05 02:39:41

如果您可以添加HTTP头到您的请求,您可以只添加Authorization头:

代码语言:javascript
运行
复制
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

其中您使用的是基本身份验证,并且QWxhZGRpbjpvcGVuIHNlc2FtZQ==位是"username:password“base64编码(不带引号)。RFC 2617

票数 2
EN

Stack Overflow用户

发布于 2009-06-04 13:28:48

https与身份验证无关,它只是传输层加密。

如果您与HTTP api交互,无论它是否为https,并且弹出对话框,这意味着它使用HTTP身份验证,无论是基本身份验证还是摘要身份验证。如果您的客户端实例化一个http客户端以从这些“服务”读取数据,那么您可以在实例化对象时传递这些凭据。

如果使用客户端脚本,XmlHttpRequest也支持http身份验证。

因此,就代码而言,如何将凭据传递给RESTful服务取决于您正在使用的http客户端(您实例化以检索数据的对象)。您只需自己从客户端收集这样的用户名/密码,并使用它来调用其他服务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/944679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档