繁体   English   中英

CSRF和Spring Security

[英]CSRF and Spring Security

我一直在努力掌握弹簧的安全性,并总是对初始配置感到困惑。 在几本教程中,我发现CSRF已禁用,而在几本中,我发现它已启用。

在某些论坛上写它是因为禁用它是一件好事,而在一些教程中,很少有人提到禁用csrf不是一个好习惯。

我的观点是为什么我们需要CSRF? 使用CSRF的原因是什么? 如果禁用它会怎样?为什么不禁用它呢?

http.csrf()
.csrfTokenRepository(csrfTokenRepository()).and()
.addFilterAfter(csrfHeaderFilter(), CsrfFilter.class)

http.csrf().disable()
.exceptionHandling().and()
.anonymous().and()
.servletApi().and()
.headers().cacheControl().and()
.authorizeRequests()

如果我将Spring Security与REST一起使用,什么是最佳配置? 因为在第二种配置下,它向我显示了一个用于登录的弹出窗口。 在第一种配置中,它给了我

(未找到预期的CSRF令牌。您的会话是否已过期?)

是否启用CSFR取决于Spring Security版本和使用的配置类型。

在Spring Security 4之前,使用XML配置时将禁用CSFR,而使用基于Java的配置时将启用CSFR。 从Spring Security 4开始,默认情况下针对基于XML和Java的配置都启用CSFR。

您是否需要CSFR,如果您有面向公众的网站或API,我会说是的。 禁用的每个安全层都会使您的应用程序更容易受到攻击。

本页说明 CSFR

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM