REST 中真的需要 CSRF 保护吗?

Is CSRF protection really required in REST?

是否真的希望 CSRF 保护存在于基于 REST 的应用程序中?

我知道从服务器端提供 JSP 的 Web 应用程序需要它。但是我正在开发一个 Spring 启用引导的 REST 服务,它将被 Angular/Bootstrap 前端使用。身份验证机制是基于 JWT 的。

由于我没有在后端 REST 服务中使用 Spring 的 CSRF 保护机制,谁能解释一下我可能会受到什么样的 CSRF 攻击?

由于 REST 应用程序应该是无状态的,您无法实施传统的 CSRF 保护(涉及在客户端和服务器上存储令牌然后匹配它们) .

但是,如果您使用一种机制来传递由浏览器自动保留的凭据(例如 cookie 或 HTTP 基本身份验证),您仍然容易受到 CSRF 攻击。

在编写 REST 服务时应避免使用此类方法进行身份验证,而应使用其他方法(例如自定义 HTTP 请求 header)。