对于RESTful Web服务公开的资源,确保任何PUT,POST和DELETE请求免受跨站点请求伪造的影响非常重要。
CSRF对所有应用程序都是强制性的,而对Web安全性的关注最少
对普通用户可以由浏览器处理的任何请求使用CSRF保护。如果您只创建非浏览器客户端使用的服务,则可能需要禁用CSRF保护。
那么,是否可以为应用程序禁用CSRF?
答案 0 :(得分:3)
这取决于您的API的客户端。 CSRF攻击基于以下事实:客户端使用HTTP请求自动发送所请求URL的cookie(授权)。如果您的客户端没有这样做(通常浏览器会自动执行此操作),您应该没问题。
原因是:如果您的API使用者未通过cookie(由浏览器自动存储)在您的应用程序中进行身份验证/授权,则攻击者无法使用任何其他网页进行成功的CSRF攻击(从其他人发送HTTP请求)页面包含来自浏览器的API的Cookie。)
换句话说,我无法想象您将以一种方式编写API客户端,它可以向您的API发送请求,存储Cookie(您的身份验证),还可以以某种方式向您显示一些&# 34;傻"用户交互 - 使用以前的API请求中的cookie(您的身份验证)向您的API发送请求。
答案 1 :(得分:0)
很容易解释这个:
基于Http Session
生成CSRF令牌。如果您的API正在举行http会话,那么您需要使用CSRF令牌来保护它,但大多数REST服务都是无状态的,在这种情况下,您不能/不应该&#t; t / wouldn&# 39;使用CSRF令牌。