HTTP 授权 Header - 不记名令牌安全
HTTP Authorization Header - Bearer token security
我正在构建一个 API,它将在 Web 和移动平台上使用。
我想向 improve my bearer token authorization
寻求一些帮助和建议。
身份验证
目前的认证非常简单。我将假定发送的凭据是正确的:
- 正在将电子邮件和密码发送到 API 端点
- 存储带有到期日期的用户令牌
- 用用户授权令牌回复客户端
授权
那么,任何其他动作授权包括:
- 发送授权承载"token"header
- 决定是否允许令牌所有者执行操作
- 正在完成操作
关注
我担心的是,如果有人只是查看请求 headers,不记名令牌很容易被发现。这将允许用户从任何其他客户端发出任何有害请求。
大多数可以故意做坏事的请求,在应用程序上下文中都是完全有效的。因此,通过请求参数过滤掉它们并不容易。
可能的修复
我一直在考虑 在 headers 上发送的可能性 :
- 用户授权令牌
- 发送日期或任何其他参数
- 哈希(代币,其他参数)
在服务器上,我会单独比较每个参数,然后比较加密的哈希值。
因此,如果有人发送具有不同日期的相同散列,则很容易被检测为入侵者。
您还有其他建议可以使通信更安全吗?
在网络上可见的令牌必须在其中加密了 ip 和用户代理(如果是网站)。这样,即使有人拥有您的令牌,除了相同的 ip 和浏览器之外,他们也无法通过任何其他方式发送它。
您正在考虑的带有日期和散列的解决方案不会增加针对基本对手的任何安全性。令牌的过期时间应在数据库的服务器端进行管理。
Oauth 2 威胁模型告诉您如何在 section 4.6.1 中保护您的令牌。
我正在构建一个 API,它将在 Web 和移动平台上使用。
我想向 improve my bearer token authorization
寻求一些帮助和建议。
身份验证
目前的认证非常简单。我将假定发送的凭据是正确的:
- 正在将电子邮件和密码发送到 API 端点
- 存储带有到期日期的用户令牌
- 用用户授权令牌回复客户端
授权
那么,任何其他动作授权包括:
- 发送授权承载"token"header
- 决定是否允许令牌所有者执行操作
- 正在完成操作
关注
我担心的是,如果有人只是查看请求 headers,不记名令牌很容易被发现。这将允许用户从任何其他客户端发出任何有害请求。
大多数可以故意做坏事的请求,在应用程序上下文中都是完全有效的。因此,通过请求参数过滤掉它们并不容易。
可能的修复
我一直在考虑 在 headers 上发送的可能性 :
- 用户授权令牌
- 发送日期或任何其他参数
- 哈希(代币,其他参数)
在服务器上,我会单独比较每个参数,然后比较加密的哈希值。
因此,如果有人发送具有不同日期的相同散列,则很容易被检测为入侵者。
您还有其他建议可以使通信更安全吗?
在网络上可见的令牌必须在其中加密了 ip 和用户代理(如果是网站)。这样,即使有人拥有您的令牌,除了相同的 ip 和浏览器之外,他们也无法通过任何其他方式发送它。
您正在考虑的带有日期和散列的解决方案不会增加针对基本对手的任何安全性。令牌的过期时间应在数据库的服务器端进行管理。
Oauth 2 威胁模型告诉您如何在 section 4.6.1 中保护您的令牌。