将敏感信息发送到REST服务

我们目前有一个基于SOAP的Web服务,我们内部的应用程序用它来验证用户。 基本上,他们发送一个带有用户名和密码的SOAP请求。 Web服务根据我们的数据存储对其凭据进行身份验证,并在身份验证成功时返回用户信息。 Web服务使用BASIC身份验证和SSL进行保护。

我们需要对此Web服务进行修改,并且正在考虑将其重新编写为REST服务。 过去我创建的REST服务相当简单,并且不需要安全性。 我从未创建过使用敏感信息的REST服务,因此我有几个问题/疑虑:

首先,是否有安全地将敏感查询参数(用户凭据)发送到REST服务的最佳做法? 我仍然可以使用BASIC身份验证和SSL。

其次,如果我使用POST向REST服务发送查询,是否仍将它视为RESTful,或者对于REST查询是否需要GET?


您也可以使用SSL和基本身份验证与REST Web服务。

HTTP GET通常用于数据检索(查询),但您也可以使用HTTP POST。 如果您可以使用任何类型的HTTP缓存,GET特别有用。 如果您需要传输大量数据来定义查询,或者您的Web服务操作期望使用一些复杂的数据格式而不是简单的参数,则POST是有用的。


与通过REST进行身份验证相比,您可能还会考虑将网络身份验证协议与Web服务结合使用。 像Kerberos和OAuth这样的技术是为这类用例而设计的。

但要回答你的问题,

  • REST鼓励您利用HTTP和相关协议,因此使用SSL和BASIC身份验证非常合适。

  • REST鼓励不仅使用GET和POST,还使用其他HTTP“动词”,例如PUT和DELETE。 使用GET仅适用于幂等操作,无副作用。


  • 就安全性而言,从SOAP到REST正在向后退步。

    就最佳实践而言:

  • 不要推出自己的安全。 使用经过同行评审和测试的框架或现有库。
  • 不要传递未加密的静态密钥。 如果您使用HTTP Basic并通过线路发送,请对其进行加密。
  • 理想情况下,使用基于散列的消息认证码(HMAC),因为它是最安全的。
  • 为什么REST安全性不存在

    链接地址: http://www.djcxy.com/p/71351.html

    上一篇: Sending sensitive information to REST service

    下一篇: RS access control