是否有必要針對CSRF來保護JAX-RS請求?是否有必要保護針對CSRF的JAX-RS請求?
通過definition REST是無狀態的,因此不存在會話ID(會話cookie),因爲根本沒有會話(另請參閱https://stackoverflow.com/a/15746639/5277820)。
我的春季安全的Java配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Configuration
@Order(1)
public static class JaxRsWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(final HttpSecurity http) throws Exception {
http
.antMatcher("/services/**")
.csrf().disable()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS, "/services/**").permitAll()
.anyRequest().hasAuthority("ROLE_user")
.and()
.httpBasic()
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
}
}
}
但我發現例如以下博客:Stateless Spring Security Part 1: Stateless CSRF protection。不幸的是,博客沒有解釋爲什麼需要CSRF保護。
有沒有其他CSRF攻擊沒有會話cookie?
如果您的網站被網頁瀏覽器使用,您只需要保護它們免受CSRF攻擊。如果它只能用於捲曲,那麼您不需要擔心CSRF –