【发布时间】:2021-02-01 23:32:05
【问题描述】:
据我了解,当在服务器端启用 CSRF 时,服务器会创建一个令牌(比如 token1)并将其注入form 并将其保存在客户端浏览器的 cookie 中。
当客户端向服务器发送form 请求时,它会从浏览器cookie 中发送csrf 令牌(token1),并发送与form 中相同的令牌。服务器通过检查cookie中的token和form中的token是否匹配来验证请求,然后处理请求。
现在,如果我在另一个选项卡中打开相同的 form,服务器是否会生成另一个令牌 (token2) 并将其注入 form 和 cookie。然后,在 cookie 中,token1 将被 token2 覆盖。那么在第一个选项卡中提交表单在这种情况下不起作用吗?但根据经验,我看到在标签 1 中提交form 仍然成功。
那么有人可以解释一下它是如何在上述情况下取得成功的吗?
【问题讨论】:
-
稍微相关的 Q - CSRF Token and Second Tab 但没有答案
标签: spring-boot spring-security csrf csrf-token