【问题标题】:Symfony lifetime CSRF tokenSymfony 生命周期 CSRF 令牌
【发布时间】:2018-07-18 18:05:43
【问题描述】:

如何在 Symfony 3 中获得 CSRF 令牌的生命周期(过期)?我想在我的登录页面上设置元标记“刷新”以避免 csrf 令牌过期的错误。

【问题讨论】:

  • A CSRF token is not an access token and does not have a lifetime like bearer tokens do. They are generated using session information. 那么为什么要设置 CSRF 令牌的生命周期?
  • @Bhavin 会话的生命周期与 csrf 令牌的生命周期相同吗?我需要有关 csrf 令牌生命周期的信息,因为当我的会话过期并且我正在尝试再次登录时出现错误。我想设置 与 csrf 令牌过期的时间。
  • 我认为您对 CSRF Token 有一些误解。请阅读此问题并回答它将清除有关 CSRF Token 的所有问题。 :- security.stackexchange.com/questions/22903/…
  • @Bhavin 谢谢你的文章,我已经读过了。我想我现在明白什么是 CSRF 令牌了。但是如何修复登录页面上有关过期令牌的错误(会话过期后)?

标签: php symfony security csrf


【解决方案1】:

以下是比changing the CSRF token lifetime更好的解决方案。

但是,CSRF 令牌背后的要点是它们经常更改,因此没有人可以尝试窃取其中一个令牌,然后使用它来发出伪造请求。这是我一直在我的应用程序中使用的工作流程。所以,PHP 框架无关逻辑保持不变我在 Laravel、CodeIgniter、Symfony 等中完成了这个过程。

  • 请求 CSRF 令牌。
  • 使用令牌发出请求。
  • 如果请求因令牌过期而失败,请转到步骤 1。

【讨论】: