我不明白为什么访问令牌-刷新令牌系统更安全。我不能坚持使用访问令牌 5 天吗?感觉没有太大优势。如果有人在具有访问令牌刷新令牌的系统中窃取我的访问令牌,我可能会遇到同样甚至更糟糕的情况,因为刷新令牌可以保持活动一整年。黑客可能会不断要求新的访问令牌。
以及令牌绑定等其他内容可以使用长期存在的访问令牌来完成...
我一直在寻找答案,但到目前为止还没有运气。 我希望在这里得到一个好的答案。
谢谢你。
重点是访问分离。访问令牌和刷新令牌应该具有不同的存储和访问权限,因为如果没有,那么你是对的,它们就没有意义了(见下文)。
实际上,这意味着访问令牌可以通过 javascript 存储在本地存储中,这很容易受到 XSS 攻击。但是,应该为身份提供者的不同域设置刷新令牌,可能在 httponly cookie 中,因为应用程序通常不需要读取它。这样,攻击者就可以通过例如破坏网站。 XSS 将无法访问或使用刷新令牌,因为刷新令牌是为身份提供商源设置的(并且浏览器中的同源策略将阻止访问)。
如果访问令牌和刷新令牌以相同的方式存储,具有相同的访问权限(例如都在本地存储中),那么几乎没有任何好处。确实,生命周期较短的访问令牌会随每个请求一起发送,而刷新令牌则不会,但安全传输(TLS 是 https)无论如何都可以防止传输过程中的大多数威胁,因此除非您有想要缓解的非常具体的威胁,这并不是单独的刷新令牌的巨大好处。