Spring安全中每个请求的不同csrf令牌

问题描述:

我在我的spring security xml文件中为web项目使用<csrf/>标记。和发送CSRF令牌形式:Spring安全中每个请求的不同csrf令牌

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

但通过BurpSuite拦截了请求我在每一个请求得到相同的CSRF令牌直到会话持续。

有什么办法可以发送每个请求不同的csrf令牌比春季安全每个会话。

我正在使用3.2.4弹簧安全罐。

CSRF令牌的默认持续时间是会话持续时间。 CSRF令牌存储在HTTP会话中,因此按每个会话生成。检查Spring Security documentation on CSRF了解更多详情。

Spring Security可以扩展以满足个人需求,因此可以根据您的需要进行扩展。

但是,这个扩展影响的可用性:在第二个选项卡

  1. 开放的Web应用程序会导致会话中断在一个或两个选项卡。
  2. 提交表单上的“返回”按钮可能会导致一些奇怪的错误。
+0

在我的应用程序登陆后的Web应用程序后,我有两个选项卡和第一个选项卡数据将默认显示。由于我使用

,因此我可以在此页面上看到csrf标记。如果我去tab2这是一个GET调用来获取数据并返回到tab1,这又是GET调用。在第一个选项卡上,如果点击任何按钮后进行后端调用。在这里,通话后失败,并获得403禁止错误消息“预期的CSRF令牌未找到,您的会话是否过期”。这里的任何帮助 – Kiran

+0

@Kiran,您可能需要创建一个新问题而不是评论。您应该包含一些工作代码作为示例,以便人们可以帮助您调试问题。 –