许多资源声称(source1)(source2)

但是the Spring Security docs说:

因此,可以为应用程序禁用CSRF吗?

  • 仅公开REST API
  • 仅使用JSON(检查请求的Content-Type header )
  • 最佳答案

    这取决于您的API的客户端。 CSRF攻击基于这样一个事实,即客户端会通过HTTP请求自动发送所请求URL的cookie(授权)。如果您的客户没有这样做(通常浏览器会自动这样做),那么您应该没问题。

    原因是:如果您的应用程序未通过cookie(由浏览器自动存储)对API使用者进行身份验证/授权,则攻击者无法使用任何其他网页进行成功的CSRF攻击(从其他页面发送带有cookie的HTTP请求)来自浏览器的API)。

    换句话说,我无法想象您将以这样的方式编写API客户端:它可以将请求发送到您的API,存储cookie(您的身份验证),并且还可以以某种方式向您显示“愚蠢”用户交互的内容-发送来自先前API请求的带有Cookie的API请求(您的身份验证)。

    10-07 18:59
    查看更多