HTTP 授权 Header - 不记名令牌安全

HTTP Authorization Header - Bearer token security

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

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

身份验证

目前的认证非常简单。我将假定发送的凭据是正确的:

授权

那么,任何其他动作授权包括:

关注

我担心的是,如果有人只是查看请求 headers,不记名令牌很容易被发现。这将允许用户从任何其他客户端发出任何有害请求。

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

可能的修复

我一直在考虑 在 headers 上发送的可能性 :

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

因此,如果有人发送具有不同日期的相同散列,则很容易被检测为入侵者。


您还有其他建议可以使通信更安全吗?

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

您正在考虑的带有日期和散列的解决方案不会增加针对基本对手的任何安全性。令牌的过期时间应在数据库的服务器端进行管理。

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