首页 > 解决方案 > 刷新令牌宽限期的安全隐患

问题描述

我有一个使用django-oauth-toolkit构建的 OAuth2 服务器,默认情况下,刷新令牌在使用时会立即被撤销。这意味着如果客户端使用刷新令牌请求新的访问令牌,但由于网络中断而没有收到响应,他们将被迫重新进行身份验证。

该库提供的设置REFRESH_TOKEN_GRACE_PERIOD_SECONDS是在使用刷新令牌与其撤销之间等待的时间量。如果客户端使用刷新令牌但未收到响应,则该原始刷新令牌仍然有效REFRESH_TOKEN_GRACE_PERIOD_SECONDS,允许客户端无需重新验证即可获得新的访问令牌。

据我所知,使用时立即撤销刷新令牌的目的是防止重放攻击,但由于该授权服务器专门使用https,因此似乎足以防御此类攻击

是否存在因刷新令牌撤销的宽限期而导致的其他漏洞?从不撤销刷新令牌会有什么影响?

标签: djangooauth-2.0websecuritydjango-oauth-toolkit

解决方案


RFC 7009 https://www.rfc-editor.org/rfc/rfc7009#section-5中提到了安全注意事项

如果 TLS (HTTPS) 配置/管理不正确(不安全的 TLS 版本、密码、中间人、证书过期、证书颁发机构问题……),您也可能会受到攻击。

您的服务器上的资源耗尽可能存在问题。刷新令牌需要一些资源 - 例如内存、数据库记录、...


推荐阅读