为了账号安全,请及时绑定邮箱和手机立即绑定

保护RESTAPI/Web服务的最佳实践

保护RESTAPI/Web服务的最佳实践

守着星空守着你 2019-06-29 11:17:38
保护RESTAPI/Web服务的最佳实践在设计RESTAPI或服务时,是否有任何已建立的处理安全性的最佳实践(身份验证、授权、身份管理)?在构建SOAPAPI时,您可以使用WS-Security作为指南,并且有很多关于这个主题的文献。我发现有关保护REST端点的信息较少。虽然我理解REST无意中没有类似WS-*的规范,但我希望最佳实践或推荐的模式已经出现。如能与相关文件进行任何讨论或链接,将不胜感激。如果有关系,我们将使用WCF和POX/JSON序列化消息,用于使用.NET Framework的v3.5构建的RESTAPI/Services。
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

正如微调所言,AmazonS 3是一个很好的工作模式。它们的请求签名确实具有一些特性(例如包含时间戳),这些特性有助于防止意外和恶意请求重放。

HTTPBasic的好处是几乎所有HTTP库都支持它。当然,在这种情况下,您需要使用SSL,因为通过网络发送明文密码几乎是一件坏事。在使用SSL时,Basic比Digest更可取,因为即使调用方已经知道需要凭据,Digest也需要额外的往返来交换当前值。使用Basic,调用方只需第一次发送凭据即可。

一旦建立了客户端的身份,授权实际上只是一个实现问题。但是,可以使用现有的授权模型将授权委托给其他组件。同样,这里关于Basic的好处是,您的服务器最终得到了客户机密码的明文副本,您可以根据需要将其传递到基础结构中的另一个组件。


查看完整回答
反对 回复 2019-06-29
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

除了HTTP,没有其他的REST标准。外面有固定的休息服务。我建议你看一眼他们,看看他们是怎么工作的。

例如,我们在开发自己的S3 REST服务时,借鉴了很多亚马逊的S3 REST服务。但是我们选择不使用基于请求签名的更高级的安全模型。更简单的方法是基于SSL的HTTPBasicauth。你必须决定什么在你的情况下最有效。

另外,我强烈推荐这本书。RESTful Web服务奥莱利的。它解释了核心概念,并提供了一些最佳实践。您通常可以使用他们提供的模型并将其映射到您自己的应用程序中。


查看完整回答
反对 回复 2019-06-29
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

你也可以看看奥奥斯,一种新出现的基于令牌的授权开放协议,专门针对HTTPAPI。

它非常类似于Flickr记住牛奶“REST”API(不一定是RESTfulAPI的好例子,而是基于令牌的方法的好例子)。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 631 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信