You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security条件化CSRF保护实现 适配Web与移动端多端访问需求

Spring Boot 同接口兼容Web端CSRF校验与移动端免校验实现方案

有成熟的实现方案,Spring Security原生支持灵活配置CSRF校验规则,以下是两种常用的落地方式:

方案1:基于授权类型自动跳过Bearer Token请求的CSRF校验(最推荐)

该方案无需修改现有接口路径,可自动适配所有同时供Web端、移动端调用的接口,安全逻辑完备。
CSRF攻击仅能触发浏览器自动携带同域Cookie,无法主动添加自定义的Authorization请求头,因此所有携带Bearer Token的请求本身不存在CSRF风险,可直接配置Spring Security跳过这类请求的校验,适配Spring Security 6+的代码示例如下:

@Configuration
@EnableWebSecurity
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .csrf(csrf -> csrf
                // 所有携带Bearer Token的请求跳过CSRF校验
                .ignoringRequestMatchers(request -> {
                    String authHeader = request.getHeader("Authorization");
                    return authHeader != null && authHeader.startsWith("Bearer ");
                })
            )
            // 其余原有配置保持不变:Cookie会话管理、授权规则、Bearer Token校验等
            .authorizeHttpRequests(auth -> auth
                .anyRequest().authenticated()
            )
            .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED))
            .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()));
        return http.build();
    }
}

配置后Web端使用Cookie授权的请求仍会走正常CSRF校验流程,移动端携带Bearer Token的请求自动跳过校验,两端逻辑互不干扰。

方案2:针对指定接口路径跳过CSRF校验

如果你仅需要开放少量特定接口给移动端调用,可以直接指定对应路径忽略CSRF校验,代码示例如下:

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    http
        .csrf(csrf -> csrf
            // 仅指定用户数据修改接口跳过CSRF校验,可按需替换为你的实际接口路径
            .ignoringRequestMatchers("/api/user/profile/update")
        )
        // 其余原有配置保持不变
        .authorizeHttpRequests(auth -> auth.anyRequest().authenticated());
    return http.build();
}

注意选择该方案时需确保对应接口的权限校验逻辑完整,必须通过身份授权后才能调用,避免出现未授权访问漏洞。

安全性说明

移动端的Bearer Token一般存储在应用本地沙箱中,第三方应用无法伪造请求自动携带该Token,因此移动端请求跳过CSRF校验不存在安全风险。


内容的提问来源于stack exchange,提问作者Vrezh Arakelyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:15:00