2016-03-28 80 views
2

早上好。我是春季开机新手,我遵循这里的指南:http://spring.io/guides/gs/rest-service/来构建我的休息服务示例,现在我正在尝试启用CSRF保护。我读这应该是默认启用的,所以如果我不包括:启用弹簧启动时无法获得csrf保护

http.csrf()禁用()

我WebSecurityConfigurerAdapter配置

中,CSRF protectection应该enableb ,但似乎并非如此。问题是没有生成X-CSRF-TOKEN,也没有以任何方式包含在HTTP响应中。 我期望做什么,让x-csrf-token生成并包含在响应中,当然还有csrf保护功能可以正常工作?

我注意到,具有类似弹簧的MVC配置,我得到产生的x CSRF令牌简单地包括:

<安全:CSRF禁用= “假”/>

在我的安全配置文件中。但是,在春季启动的时候,我可能会遇到错误,并且没有办法生成csrf令牌。任何人都可以帮助我,也许可以指引我一个实际的例子吗?我的安全配置是:

 @Override 
    protected void configure(HttpSecurity http) throws Exception 
    { 
     http 
     // .csrf().disable() 
     .authorizeRequests() 
      .anyRequest() 
      .authenticated() 
     .and() 
     .httpBasic() 
     .authenticationEntryPoint(new RestAuthenticationEntryPoint()) 
     .and() 
     .formLogin() 
     .successHandler(new RestAuthenticationSuccessHandler()) 
     .failureHandler(new SimpleUrlAuthenticationFailureHandler()) 
     .and() 
     .logout() 
     .logoutSuccessHandler(new RestLogoutSuccessHandler()); 
} 

@Override 
public void configure(AuthenticationManagerBuilder auth) throws Exception 
{ 
    auth.userDetailsService(restUserDetailService); 
} 

非常感谢。

+0

提供相关 –

+0

由于注:Kunal弹簧的安全配置的Java代码,添加上述我的配置()方法。 –

+0

你打电话给你的休息服务? –

回答

0

CSRF代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web应用程序上执行不需要的操作。 CSRF攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。

为使防范CSRF攻击的变化是 -

  • 在安全配置

  • 启用CSRF添加的所有网页。这会在所有网页中插入独特的 csrf标记。

与视频教程工作实施例 -
Spring Boot Security - Enabling Protection against CSRF attacks