CORS跨域攻击与修复

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

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

安全漏洞描述

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

swagger-switch

风险等级:高

解决办法

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 比如: *.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服务
增加相关头配置

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

安全无小事!!!


CORS跨域攻击与修复
https://www.hancher.top/2023/06/21/safe-cors-attack/
作者
寒澈
发布于
2023年6月21日
许可协议