我使用REST application
创建了Spring Boot
并受Spring Security Oauth2
支持。我使用Cloudfoundry UAA
作为第三方令牌提供商。
应用程序中没有会话,每个请求都必须附带UAA
提供的Oauth2令牌。是否仍然需要保护REST服务免受CSRF
攻击?
因为恶意网站无法从我的UAA服务中获取有效的Oauth2令牌。
由于
答案 0 :(得分:1)
这取决于你的客户端是如何实现的,假设你使用angular我们新的httpClient和拦截器功能:https://angular.io/guide/http。如果你有一个拦截器在发送请求时为你添加令牌,攻击者可能会利用它。为了防止这种攻击,角度拦截器有一个构建机制,可以将XSRF-TOKEN添加到cookie上的所有请求库中......但是在同一链接中提到:
请注意,
HttpClient
的支持只是XSRF保护方案的客户端的一半。您的后端服务必须配置为设置页面的cookie,并验证标头出现在所有符合条件的请求上。如果没有,Angular的默认保护将无效。
答案 1 :(得分:0)
CSRF
攻击目标通常是Cookies
和Basic
身份验证标头。
由于在我的应用程序中没有使用这些CSRF
,因此不需要保护。
身份验证从提供的Oauth2
令牌开始(没有基本身份验证),并且一旦返回响应,就忘记了请求的状态(没有会话cookie)。
参考文献: