概述

CORS 允许跨域访问资源,但不当配置可能造成安全风险与性能问题。本文提供安全来源与凭证配置、预检缓存优化与响应头治理,并给出验证与监控方法。

安全策略(已验证)

  • 允许来源:使用白名单而非 *(在携带凭证时必须为具体来源);
  • 方法与头:限制 Access-Control-Allow-Methods/Headers
  • 凭证:Access-Control-Allow-Credentials: true 时必须与具体来源搭配。

预检优化

  • 预检缓存:Access-Control-Max-Age(如 600–3600s)减少预检次数;
  • Vary: Origin:防止缓存污染;
  • 响应时间:避免复杂逻辑阻塞预检。

示例(片段)


Access-Control-Allow-Origin: https://app.example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type, Authorization
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 1800
Vary: Origin

验证与监控

  • 指标:预检次数、耗时与失败率;
  • 浏览器与网关日志:观察来源与头匹配;

常见误区

  • 使用 * 与凭证同时启用;
  • 忽略 Vary: Origin 导致缓存污染;

结语

以严格来源与方法/头限制为基础,结合预检缓存与 Vary,并以指标与日志验证,CORS 可在安全前提下保持高效的跨域访问体验。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部