gpt4 book ai didi

spring - 对于仅使用 JSON 的后端 REST 应用程序来说,CSRF 是否是必需的?

转载 作者:行者123 更新时间:2023-12-02 09:13:41 26 4
gpt4 key购买 nike

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

For resources exposed by RESTful web services, it's important to make sure any PUT, POST, and DELETE request is protected from Cross Site Request Forgery.

CSRF is mandatory for all applications with a minimum of concern about web security

但是the Spring Security docs说:

use CSRF protection for any request that could be processed by a browser by normal users. If you are only creating a service that is used by non-browser clients, you will likely want to disable CSRF protection.

那么,可以为应用程序禁用 CSRF 吗?

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

最佳答案

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

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

换句话说,我无法想象您的 API 客户端会以某种方式编写,它可以向您的 API 发送请求,存储 cookie(您的身份验证),并且还可以以某种方式向您显示一些“愚蠢”用户的内容交互 - 使用之前 API 请求中的 cookie(您的身份验证)向您的 API 发送请求。

关于spring - 对于仅使用 JSON 的后端 REST 应用程序来说,CSRF 是否是必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com