如何防止刷新被盗访问令牌

5
场景:您拥有一个有效期更长的刷新令牌和一个有效期较短的访问令牌。
设置:客户端、应用服务器和身份验证服务器。
客户端存储访问令牌。
应用服务器存储刷新令牌。
身份验证服务器分发刷新+访问令牌。
其中一个优点是,被盗的访问令牌只能在其有效期内使用。
假设黑客窃取了有效期为30分钟的访问令牌。当黑客在30分钟后使用有效但已过期的被盗访问令牌发出请求时,应用服务器会使用刷新令牌刷新它,从而黑客获得新的有效且未过期的访问令牌。
如何防止这种情况发生?

嘿@Arthur。如果你已经找到了这个问题的最佳解决方案,请告诉我。我对这一行非常困惑,不知道该如何防止它:--> 假设黑客窃取了有效期为30分钟的访问令牌。当黑客在30分钟后使用有效但过期的被盗访问令牌发出请求时,应用服务器会使用刷新令牌来刷新它,从而使黑客获得一个新的有效且未过期的访问令牌。 - Pradip Kachhadiya
2个回答

1
一个应用服务器不应该拥有刷新令牌。
在OAuth2.0中,客户端应该存储刷新令牌。
为了使用刷新令牌生成新的访问令牌,客户端应该向授权服务器提供刷新令牌(以及客户端ID和密钥)。

0

无法阻止黑客刷新令牌,除非

  1. 原用户重置密码,AUTH服务器删除所有先前的刷新令牌。

  2. 将刷新令牌的有效时间缩短到接近访问令牌的有效时间。

在这两种情况下,我们都依赖于使刷新令牌失效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接