首页/安全/漏洞与攻击面速查/CORS 跨域配置错误
Web 漏洞原理与防护55 条

CORS 跨域配置错误

CORS 把 Access-Control-Allow-Origin 反射为任意来源并允许携带凭据时,任意站点都能读取用户数据;防护是来源白名单精确匹配,避免通配与反射。

漏洞与攻击面速查安全更新于 2026-10-12

错误与正确对比

错误与正确对比
# 错误:通配来源 + 携带凭据(浏览器同时拒绝,配置本身也危险)
add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Credentials "true";

# 正确:白名单精确匹配
set $cors "";
if ($http_origin ~ ^https://(app|admin)\.example\.com$) { set $cors $http_origin; }
add_header Access-Control-Allow-Origin $cors;

要点

要点
正则匹配要锚定结尾,避免 evil-example.com 类域名匹配成功
携带凭据场景不允许通配来源
预检请求(OPTIONS)的响应头同样按白名单下发
敏感接口优先同源或经后端代理
CORS 是浏览器侧授权机制;配置错误不会影响非浏览器请求,但允许任意站点读取携带会话的数据。

易错点

  • 正则未锚定结尾:https://example.com.evil.cn 之类的域名会被前缀匹配放行

数据来源与参考

  • MDN CORS 文档
  • OWASP CORS 配置错误说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌