首页/网络/协议速查/Origin 请求来源
HTTP 头与缓存70 条

Origin 请求来源

标识请求发起的源(scheme + host + port),是 CORS 与跨站请求防护的核心依据。

协议速查网络更新于 2026-10-13

Origin 是什么

Origin 标识请求是从哪个源发起的,由协议、域名与端口三部分组成,不含路径。它是浏览器跨域机制的核心依据:服务端根据它决定是否放行,浏览器根据响应中的授权头决定是否把结果交给脚本。与来源参照字段相比,它更可靠也更容易校验,因为后者可能被隐私策略裁剪或被中间设备省略,而它本身在跨域写请求与预检请求中都会携带。

基本信息

名称Origin,定义见 Web 来源概念相关规范
组成协议、域名、端口,不含路径与查询串
作用跨域请求的来源标识,服务端据此做授权判断
特殊情况沙箱环境与部分隐私场景下可能取值为空
校验要求必须按白名单比对,不能原样回显

典型使用场景

  • 跨域授权:服务端根据它决定是否放行并对响应加上授权头
  • 跨站请求防护:校验它是否为可信来源,作为纵深防御的一层
  • 统计与审计:记录请求来源分布,识别异常调用
  • 灰度与实验:按来源区分不同前端版本的调用
  • 第三方接入:核对合作方页面是否按约定来源调用接口

观察跨域请求头

观察跨域请求头
curl -si -X POST https://api.example.com/data -H 'Origin: https://app.example.com' -H 'Content-Type: application/json' -d '{}'   # 模拟跨域请求
# 响应里应包含针对该来源的授权头,若缺少则浏览器会拒绝把结果交给脚本
curl -si https://api.example.com/data -H 'Origin: https://evil.example'   # 用一个不在白名单里的来源测试,应被拒绝或不下发授权头

与相邻字段怎么区分

字段可信度与用途
本字段由浏览器生成,跨域请求必备,服务端可放心作为判断依据
来源参照字段可能被隐私策略裁剪或省略,只适合做统计不适合做权限判断
转发来源字段记录链路中的地址,与请求来源无关

排查要点

  • 跨域授权失败时先确认请求是否真的带上了它,部分场景下取值可能为空
  • 白名单要按完整来源比对,协议或端口的细微差异都会导致不匹配
  • 不要在原样回显它之后再开启携带凭证,这是最危险的一类配置
空值来源同时出现在沙箱环境与本地文件场景,直接放行空值会引入漏洞。正确做法是明确列出允许的来源,遇到空值一律拒绝并记录日志。
同源的普通读取请求通常不携带它,而跨域的写请求以及所有预检请求都会携带。因此用它做权限判断时,要考虑到「同源请求不带这个字段」这一事实,不能因为它缺失就判定为非法。

易错点

  • 把来源参照字段当成本字段用于权限校验,被裁剪或省略后校验被绕过
  • 白名单按前缀匹配,攻击者构造前缀相同的域名即可通过
  • 直接放行空值来源,沙箱与本地文件场景的请求被一并放进来
  • 启用携带凭证的同时动态回显任意来源,等于对所有站点开放

数据来源与参考

  • RFC 6454 The Web Origin Concept
  • WHATWG Fetch 标准

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌