2016-03-28 85 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