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

时间:2016-03-07 13:04:56

标签: java spring spring-security csrf csrf-protection

我在我的spring security xml文件中使用<csrf/>标记用于Web项目。并以一种形式发送csrf令牌:

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

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

有没有办法可以为每个请求发送不同的csrf令牌,而不是每个会话在spring security中。

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

1 个答案:

答案 0 :(得分:5)

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

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

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

  1. 在第二个标签页中打开网络应用会导致一个或两个标签中的会话中断。
  2. 提交表单上的“后退”按钮可能会导致一些奇怪的错误。