- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
许多资源声称 ( 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
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 吗?
最佳答案
这取决于您的 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/
我是一名优秀的程序员,十分优秀!