【问题标题】:Spring boot STATELESS application with JWT auth and csrf token带有 JWT auth 和 csrf 令牌的 Spring Boot STATELESS 应用程序
【发布时间】:2020-02-17 23:25:11
【问题描述】:

我有带有 JWT 身份验证的 Spring Boot 应用程序,效果很好! 但是我已经使用 STATELESS Policy 禁用了 csrf:

        .csrf()
            .disable()
        .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS)

此 Rest API 适用于 SPA React 应用程序。我读到,当我使用 JWT 令牌时,我不需要设置 csrf 令牌。 JWT 是否像 csrf 保护(HOW)一样工作?我认为这不是 csrf 保护。

【问题讨论】:

  • 您找到答案了吗?我面临同样的问题,没有任何解释。在 Spring Security 中,他们提到即使是无状态设置也不受定义保护。

标签: spring spring-boot jwt csrf


【解决方案1】:

CSRF 攻击是利用浏览器总是在对所请求服务器的请求中包含 cookie(包括会话 ID)这一事实,因此攻击者在执行恶意操作时假装自己是真正的用户。

如果您的端点是无状态的(这意味着您没有使用 cookie 进行身份验证),那么您不需要 CSRF 保护。

【讨论】:

  • 只是补充一下——考虑到在使用 SPA 时,用户的应用程序(re: session)状态存储在本地客户端上,但在使用旧式 MVC 时,用户状态存储在服务器上并且需要通过网络进行往返才能使用。由于网络通信组件,MVC 需要一个额外的 CSRF 令牌来防止冒充者劫持另一个用户的会话,而 SPA 本质上根本不需要它。
猜你喜欢
  • 2015-09-17
  • 2022-11-15
  • 2020-06-01
  • 2019-09-04
  • 2016-04-22
  • 2022-01-26
  • 2017-02-06
  • 2018-09-21
  • 2021-04-30
相关资源
最近更新 更多