首页 文章

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

提问于
浏览
5

我在我的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 spring 安全 jar .

1 回答

  • 5

    CSRF令牌的默认持续时间是会话持续时间 . CSRF令牌存储在HTTP会话中,因此基于每个会话生成 . 有关详细信息,请查看Spring Security documentation on CSRF .

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

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

    • 在第二个选项卡中打开Web应用程序将导致一个或两个选项卡中的会话中断 .

    • 提交的表单上的'back'按钮可能会导致一些奇怪的错误 .

相关问题