CORS跨域攻击与修复

2023/06/21 安全 共 888 字,约 3 分钟

CORS跨域的逆向操作,如何收回放开的跨域权限。

以下是CORS漏洞的一些内容:

安全漏洞描述

Web服务端CORS(跨域资源共享)错误配置,无法正确验证Origin头,任何网站都可以发出使用用户凭据发出的请求,并读取对这些请求的响应,信任任意来源可以有效地禁用同源策略,从而允许第三方网站进行双向交互,易导致敏感信息泄露

swagger-switch

风险等级:高

解决办法

需要修复两处: 1,代码级别(必修)
程序默认是禁止跨域的,也可以去掉相关逻辑。

// 比如: *.domain.com, 127.0.0.1  
@Value("${cros.allow-origin:*}")
private String crosAllowOrigin;

@Bean
public CorsFilter corsFilter()
{
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(false);
    // 设置访问源地址,   
    for (String origin : crosAllowOrigin.split(",")) {
        config.addAllowedOriginPattern(origin);
    }
    // 设置访问源请求头 , 也可以配置  
    config.addAllowedHeader("*");
    // 设置访问源请求方法 , 也可以配置   
    config.addAllowedMethod("*");
    // 有效期 1800秒    
    config.setMaxAge(1800L);
    // 添加映射路径,拦截一切请求    
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", config);
    // 返回新的CorsFilter    
    return new CorsFilter(source);
}

2,nginx服务
增加相关头配置

add_header Access-Control-Allow-Origin your.domain.com;

安全无小事!!!

文档信息

Search

    Table of Contents