Java Spring security中每个请求的不同csrf令牌

Java Spring security中每个请求的不同csrf令牌,java,spring,spring-security,csrf,csrf-protection,Java,Spring,Spring Security,Csrf,Csrf Protection,我正在spring安全xml文件中为一个web项目使用标记。以及以以下形式发送csrf令牌: <form action="" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> </form> 但是在通过BurpSuite拦截请求时,我在每个请求上都会得到相同的csrf令牌,直到会话持续 在spring security中,是

我正在spring安全xml文件中为一个web项目使用
标记。以及以以下形式发送csrf令牌:

<form action="" method="post">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>

但是在通过BurpSuite拦截请求时,我在每个请求上都会得到相同的csrf令牌,直到会话持续

在spring security中,是否有任何方法可以为每个请求发送不同于每个会话的csrf令牌


我使用的是3.2.4 spring security JAR。

CSRF令牌的默认持续时间是会话持续时间。CSRF令牌存储在HTTP会话中,因此在每个会话的基础上生成。查看更多详细信息

Spring Security可以扩展以满足个人需求,因此可以扩展以满足您的需要

但是,这种扩展会影响可用性:

  • 在第二个选项卡中打开web app将导致一个或两个选项卡中的会话中断
  • 提交表单上的“后退”按钮可能会导致一些奇怪的错误
    在我的应用程序中,登陆web应用程序后,我有两个选项卡,默认情况下将显示第一个选项卡数据。由于我正在使用csrf令牌,因此我可以在此页面上看到csrf令牌。如果我转到tab2,这是一个GET调用来获取数据,然后返回到tab1,这又是一个GET调用。在第一个选项卡上,单击对后端进行post调用的任何按钮。这里的post调用失败,出现403禁止错误,消息为“未找到预期的CSRF令牌。会话是否已过期”。有什么帮助吗here@Kiran,您可能需要创建一个新问题,而不是注释。您可能应该包括一些工作代码作为示例,以便人们可以帮助您调试问题。