在 Spring Security 的 CSRF 实现中(https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/csrf/CsrfAuthenticationStrategy.java# L57)他们首先“删除” XSRF-TOKEN-Cookie(第 58 行),然后直接设置一个新的(第 60 行)。
这会导致同一请求上有两个 Set-Cookie Header:
Set-Cookie: XSRF-TOKEN=; Max-Age=0; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/abc
Set-Cookie: XSRF-TOKEN=35ed383f-4ea1-4e00-8e5d-9bc9a3740498; Path=/abc
- 有人可以解释为什么以这种方式完成吗?
- 这是一种常见的模式吗?
- 浏览器是否有任何问题,因为它们为同一个 Cookie 获取了两个标头?