我是否应该通过HTTP Header或Post体将JSON传递给REST Api?

我正尝试使用基于令牌的身份验证创建Rest Api。

在从客户端向服务器传递证书以生成令牌方面是否有任何最佳做法? 作为HTTP标头还是作为后置主体中的JSON字符串

我一直在四处搜寻,但无法找到任何具体答案。


不要试图重新发明轮子。 为了一个好的起点,请看这里:最佳实践 - 保护a-rest-api-web-service

对于我的API实现和我的需求,我选择了一个简单的BasicAuth(发送带有标头的证书)以及任何其他令牌,以及与每个请求一起添加到JSON负载的安全相关数据。 不要忘记将SSL设置为强制。


我建议使用Open ID Connect身份验证协议,更具体地说,使用第三方服务或实现此协议的固定库。 Open ID Connect基于OAuth 2构建,现在广泛用于支持各种开发语言和框架:http://openid.net/developers/libraries/

成功的身份验证步骤会生成一个“访问令牌”,然后可以将其传递到您的REST API,并在此处对其进行验证以进行真实性验证。 在Open ID Connect中,此令牌作为HTTP标头传递给POST主体。

如果您推出自己的协议,或者甚至开发自己的Open ID Connect实现,请注意细节,因为忽略一些小事情很容易,从而创建一个不安全的API。 有关我所指的示例,请参阅OAuth 2.0威胁模型和安全注意事项。 由于这种担忧,我总是建议使用现有的,经过充分审查的实施方案。

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

上一篇: Should I pass Credentials via HTTP Header or Post body as JSON to REST Api?

下一篇: Sending sensitive information to REST service