如何将 Spring Security 的 CSRF 功能用于无状态端点?
Posted
技术标签:
【中文标题】如何将 Spring Security 的 CSRF 功能用于无状态端点?【英文标题】:How to use Spring Security's CSRF feature for stateless endpoints? 【发布时间】:2014-01-04 13:10:04 【问题描述】:我正在使用带有无状态 Web 服务的 Spring Security。我想使用 Spring Security 3.2 中的 CSRF 功能。无状态网络应用可以做到这一点吗?
这是相关的 Java Config,因为我暂时不得不禁用 CSRF。
@Override
protected void configure(HttpSecurity http) throws Exception
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.sessionFixation().none().and()
.csrf().disable();
【问题讨论】:
您的网络服务是否完全可以在网络浏览器中使用? 是的。主要用于单页网页应用(AngularJS) 查看方法:blog.jdriven.com/2014/10/… 【参考方案1】:如果您的服务真的是无状态的,那么 CSRF 保护可能根本没有意义。只要服务器不使用 cookie 来识别/验证用户,您的服务就不会受到 CSRF 攻击。
详细解释见http://sitr.us/2011/08/26/cookies-are-bad-for-you.html
【讨论】:
以上是关于如何将 Spring Security 的 CSRF 功能用于无状态端点?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security + Keycloak 授权:如何将端点与资源相关联?
如何将凭据从 Angular 前端传递到 Spring 后端(Spring Security 的基本身份验证)
如何将 Spring Security 与 Spring Boot Rest API 一起使用?
如何将 OAuth 身份验证与 Spring Security 联系起来