CORS跨域的逆向操作,如何收回放开的跨域权限。
以下是CORS漏洞的一些内容:
安全漏洞描述
Web服务端CORS(跨域资源共享)错误配置,无法正确验证Origin头,任何网站都可以发出使用用户凭据发出的请求,并读取对这些请求的响应,信任任意来源可以有效地禁用同源策略,从而允许第三方网站进行双向交互,易导致敏感信息泄露
风险等级:高
解决办法
需要修复两处: 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;
安全无小事!!!
文档信息
- 本文作者:寒澈
- 本文链接:https://www.hancher.top/2023/06/21/CORS_attack/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)