Spring CSRF 令牌生命周期

Posted

技术标签:

【中文标题】Spring CSRF 令牌生命周期【英文标题】:Spring CSRF token life 【发布时间】:2015-01-08 02:21:46 【问题描述】:

我正在根据doc 使用 Spring 安全性实现 CSRF 保护

我的一个问题是:这个令牌什么时候会被 Spring 安全性失效? 每次提交请求时令牌都会失效吗?

【问题讨论】:

【参考方案1】:

默认情况下,CSRF 令牌存储在 HTTP 会话中,并在每个会话的基础上生成。有关详细信息,请参阅the official Spring Security documentation。因此,CSRF 令牌的默认生命周期是会话持续时间。

与 Spring Security 中的其他所有内容一样,CSRF 令牌的存储和检索可以自定义以满足个人需求。这样做的方法是为CsrfTokenRepository 创建一个实现。自定义实现可以根据每个请求更改令牌,将令牌存储在关系数据库中,等等。

【讨论】:

谢谢。由于 CSRF 令牌的默认生命周期是会话,在此活动会话期间,CSRF 攻击者链接可以攻击我的网站,对吗? [我的意思是,如果我在会话处于活动状态时单击攻击者链接] 不,那是 CSRF 保护的场景。如果您在重要网站上的活动会话期间碰巧访问了恶意网站,则该恶意网站无法成功向该重要网站提交请求。这是因为攻击者没有会话的 CSRF 令牌,因此伪造的请求将被拒绝。

以上是关于Spring CSRF 令牌生命周期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Keycloak 中指定刷新令牌的生命周期

具有自定义生命周期的身份服务器 4 访问令牌

Laravel Passport 令牌生命周期

IdentityServer4 访问令牌生命周期

有人知道 Facebook API 访问令牌的生命周期吗?

访问和刷新令牌的生命周期