标题很好地总结了这一切。我正在询问应满足的条件,因此 Spring 决定发回Set-Cookie:XSRF-TOKEN=...
响应标头。
我可以看到我的很多请求都在不需要时收到带有此类标头的响应。例如,当我发送 GET 请求时,即使我X-XSRF-TOKEN
为请求设置了标头,它也会收到带有该标头集的响应。但是对于具有上述请求标头的 POST 请求,Spring 将停止发回 set-cookie 标头。所以我想知道应该满足什么条件,所以Spring决定寄回一个。
标题很好地总结了这一切。我正在询问应满足的条件,因此 Spring 决定发回Set-Cookie:XSRF-TOKEN=...
响应标头。
我可以看到我的很多请求都在不需要时收到带有此类标头的响应。例如,当我发送 GET 请求时,即使我X-XSRF-TOKEN
为请求设置了标头,它也会收到带有该标头集的响应。但是对于具有上述请求标头的 POST 请求,Spring 将停止发回 set-cookie 标头。所以我想知道应该满足什么条件,所以Spring决定寄回一个。
我花了一些时间跟踪 Spring Security 的源代码,并设法自己找到了答案。
首先,我不知道 CSRF 是如何工作的,跟踪代码帮助我完全理解它。我认为这是值得了解的。这是从 CSRF 的角度发送和接收的请求和响应的场景:
至于我的问题的答案,正如我在第二步中提到的,如果没有向服务器发送 cookie(带有 XSRF-TOKEN 名称),则会生成 cookie。而且它不依赖于任何其他因素 - 如此!