要点
- 同源策略限制了 DOM、Cookie、Storage、网络结果的跨源访问。
- 放行跨域通常通过 CORS、PostMessage、JSONP、反向代理等。
- 常见误用:反射式允许任意 Origin、通配符与凭据混用、传递信任。
攻防视角
从攻击面看,跨域最易被滥开的是 CORS。若后端将 Access-Control-Allow-Origin 直接回显请求头或使用 * 与 Access-Control-Allow-Credentials: true 同时出现,将导致任意站点可携带用户 Cookie 发起跨域读,进而访问敏感 API。
排查路径
- 抓包检查关键响应头,留意 ACAO 与凭据配置。
- 验证预检与简单请求差异,关注非简单 Content-Type。
- 确认前端是否通过 PostMessage 传递敏感数据且缺少来源校验。
防护建议
- 白名单匹配 Origin,精确到协议+域名+端口。
- 携带凭据时禁止使用
*,逐一设置允许源。 - PostMessage 校验
event.origin与消息结构。