2016-03-28 3 views
2

Guten morgen alle. Ich bin neu im Frühjahr Boot, ich folgte dem Leitfaden hier: http://spring.io/guides/gs/rest-service/, um mein Rest Service-Beispiel zu bauen und jetzt versuche ich den CSRF-Schutz zu aktivieren. Ich habe gelesen, dass es standardmäßig aktiviert werden soll, also wenn ich nicht enthalten sind:.csrf protection im frühjahr boot nicht möglich aktiviert

http.csrf() deaktivieren()

in meiner WebSecurityConfigurerAdapter Konfiguration sollte die csrf protectection sein enableb , aber es scheint nicht so zu sein. Das Problem ist, dass das X-CSRF-TOKEN in keiner Weise generiert und nicht in meine HTTP-Antwort aufgenommen wird. Was soll ich tun, um das x-csrf-token generieren zu lassen und in die Antwort einzubeziehen und natürlich funktioniert der csrf-Schutz?

Ich bemerkte, dass, mit einer ähnlichen Feder mvc Konfiguration ich die x-csrf-Token einfach einschließlich generiert erhalten:

< Sicherheit: csrf disabled = "false" />

in meiner Sicherheitskonfigurationsdatei. Aber mit Spring Boot bekomme ich vielleicht etwas falsch und es gibt keine Möglichkeit den csrf Token zu generieren. Kann mir jemand helfen und vielleicht auf ein funktionierendes Beispiel hinweisen? Meine Sicherheitskonfiguration lautet:

 @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); 
} 

vielen Dank.

+0

bieten Federsicherheitskonfiguration von Java-Code in Frage –

+0

Dank Kunal haben meine configure() -Methode oben hinzugefügt. –

+0

Wie rufen Sie Ihren Restdienst an? –

Antwort

0

CSRF steht für Cross-Site Request Forgery. Es ist ein Angriff, der einen Endbenutzer zwingt, unerwünschte Aktionen in einer Webanwendung auszuführen, in der er gerade authentifiziert ist. CSRF-Angriffe richten sich speziell gegen zustandswechselnde Anforderungen, nicht gegen Datendiebstahl, da der Angreifer keine Möglichkeit hat, die Antwort auf die gefälschte Anforderung zu sehen.

Die Änderungen zum Schutz vor CSRF-Angriff ermöglicht ist -

  • aktivieren csrf in Sicherheitskonfiguration

  • das Hinzufügen in allen Webseiten. Dies fügt eindeutige csrf-Token auf allen Webseiten ein.

Arbeitsbeispiel mit Video-Tutorial -
Spring Boot Security - Enabling Protection against CSRF attacks