HTTP授权标头 - 承载令牌安全性

时间:2016-01-04 21:01:32

标签: security http authentication authorization bearer-token

我正在构建一个将从Web和移动平台上使用的API。

我想向improve my bearer token authorization提供一些帮助和建议。

验证

目前的身份验证非常简单。我会假设发送的凭据是正确的:

  • 向API端点发送电子邮件和密码
  • 存储具有到期日期的用户令牌
  • 使用用户授权令牌回复客户端

授权

然后,任何其他行动授权包括:

  • 发送授权承载“令牌”标题
  • 决定是否允许令牌所有者执行操作
  • 完成操作

我担心的是如果有人只查看请求标头,就可以轻松发现持票人令牌。这将允许用户从任何其他客户端做任何有害的请求。

大多数可以故意做错的请求在应用程序上下文中完全有效。因此,通过请求参数过滤它们并不容易。

可能的修复

我一直在考虑发送标题

的可能性
  • 用户授权令牌
  • 发送日期或任何其他参数
  • 哈希(令牌,其他参数)

在服务器上,我会单独比较每个参数,然后比较加密的哈希值。

因此,如果有人发送具有不同日期的相同哈希,则很容易将其检测为入侵者。

您是否有任何其他建议可以让沟通更安全?

2 个答案:

答案 0 :(得分:1)

您正在考虑使用日期和哈希的解决方案不会对基本对手添加任何安全性。标记的到期应该在数据库的服务器端进行管理。

Oauth 2威胁模型告诉您如何在section 4.6.1中保护您的令牌。

答案 1 :(得分:0)

网络上可见的令牌必须在其中加密ip和用户代理(如果是网站)。这种方式即使有人拥有你的令牌,他们也无法通过相同的IP和浏览器之外的任何其他方式发送它。