启用弹簧启动时无法获得csrf保护
问题描述:
早上好。我是春季开机新手,我遵循这里的指南:http://spring.io/guides/gs/rest-service/来构建我的休息服务示例,现在我正在尝试启用CSRF保护。我读这应该是默认启用的,所以如果我不包括:启用弹簧启动时无法获得csrf保护
我WebSecurityConfigurerAdapter配置http.csrf()禁用()
中,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);
}
非常感谢。
答
CSRF代表跨站请求伪造。这是一种攻击,迫使最终用户在当前通过身份验证的Web应用程序上执行不需要的操作。 CSRF攻击专门针对状态改变请求,而不是数据窃取,因为攻击者无法查看对伪造请求的响应。
为使防范CSRF攻击的变化是 -
在安全配置
启用CSRF添加的所有网页。这会在所有网页中插入独特的 csrf标记。
与视频教程工作实施例 -
Spring Boot Security - Enabling Protection against CSRF attacks
提供相关 –
由于注:Kunal弹簧的安全配置的Java代码,添加上述我的配置()方法。 –
你打电话给你的休息服务? –