错误与正确对比
错误与正确对比
# 错误:通配来源 + 携带凭据(浏览器同时拒绝,配置本身也危险)
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 是浏览器侧授权机制;配置错误不会影响非浏览器请求,但允许任意站点读取携带会话的数据。