CSRF 保护和 Spring Session header session 策略

CSRF protection and Spring Session header session strategy

在我基于 spring 的其余 API 中,我使用 spring-session 和 HeaderHttpSessionStrategy。鉴于根本不使用 cookie(session id 作为 header 发送),我还需要担心 CSRF 攻击吗?

我会说我很安全,而且我看到人们同意在这种情况下不需要 CSRF 保护,例如: https://security.stackexchange.com/questions/62080/is-csrf-possible-if-i-dont-even-use-cookies

然而,Spring 人争辩说,无论何时通过浏览器访问应用程序,您都需要 CSRF 保护:https://spring.io/blog/2015/01/12/the-login-page-angular-js-and-spring-security-part-ii

我会坚持 Spring 人。通常他们知道他们在说什么。 CSRF 攻击包含恶意代码 运行,当您的请求在传输过程中时,假装该请求来自您。

启用 CSRF 除了向您的表单添加一个隐藏字段之外没有任何危害,它可以保护您的 Web 应用程序免受此类攻击。那为什么不用呢?

在我看来,如果使用 HeaderHttpSessionStrategy,CSRF 攻击是不可能的。如果将 header 令牌保存为 cookie,它实际上与 XSRF 保护工作的方法相同。所以 XSRF 保护不会给你任何额外的保护。