2015-09-14 126 views
0

我一直在试图抓住弹簧的安全性,并总是对初始配置感到困惑。在少数教程中,我发现禁用CSRF并且很少发现它已启用。CSRF和Spring Security

在某个论坛上,由于禁用它很好,在某些教程中很少有人提到禁用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安全与REST什么是最好的配置?因为在第二个配置中它向我显示一个弹出窗口来登录。而在第一配置如果CSFR启用与否取决于所使用Spring Security的版本和类型的配置它给我

(预期CSRF令牌没有发现。贵国会话过期?)

回答

1

在Spring Security 4之前,当使用XML配置时,CSFR将被禁用,当使用基于Java的配置时,它将被启用。从Spring Security 4开始,缺省情况下,基于XML和Java的配置都启用CSFR。

您是否需要CSFR,以及如果您有面向公众的网站或API,我会说是。您禁用的每个安全层都会让您的应用程序更加脆弱

被解释什么CSFR on this page

+0

你没有回答我的其他问题,如果我使用Spring安全与REST什么是最好的配置? –

+0

这个问题我不会回答,因为这是非常有见地的...... –