问题遇到的现象和发生背景
如题:Spring Security的CsrfFilter中csrf-token
我的解答思路
为了防止csrf攻击,spring security加入了csrffiler过滤器,
1.每次请求的时候都会带有csrf-token并跟tokenRepository中的token比对,比对通过了则替换成新的csrf-token
2.下次请求会带有上次新的csrf-token,像步骤一时一样,比对然后替换成新的
问题出现
当csrf-token=1 时,重复提交了两次,出现并发问题,
那第一次请求完成,比对成功则会替换token,然后更新token,
则第二次校验因为第一次的请求先到达,所以将csrf-token替换了,所以比对的时候一定会比对失败了,所以没有返回csrf-token
那么csrf-token就丢失了
问题是:
是不是会出现这样的并发问题
在git中有人提出
https://github.com/spring-projects/spring-security/issues/5219#ref-commit-352aca3
是不是有这种并发导致token丢失的问题?