首页/网络/协议速查/Referrer-Policy 来源策略
HTTP 头与缓存70 条

Referrer-Policy 来源策略

控制页面/资源请求时 Referer 的发送粒度:从完全不发到只发源,共 8 种策略。

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

Referrer-Policy 是什么

Referrer-Policy 是响应头,控制浏览器在导航跳转、加载子资源、发起跨域请求时,Referer 头里带多少信息:从完全不发,到只发站点源,再到连同路径与查询串一起发。字段名 Referer 是早期拼写错误的历史遗留,标准里一直保留至今。它可以由服务端响应头下发,也可以由页面内 meta 标签声明;只约束浏览器行为,对 curl、爬虫与服务器之间的调用没有任何作用。

基本信息

字段名Referrer-Policy(响应头)
标准取值数量8 种
现代浏览器默认strict-origin-when-cross-origin
适用范围浏览器发起的导航与子资源请求
能否用 JS 设置否,Referer 属于禁止修改的请求头
优先级响应头高于 meta 标签

八种取值对照

取值跨站发送什么要点
no-referrer什么都不发最严格
same-origin同源发完整地址,跨站不发站内统计仍可用
origin只发源同源请求也降到源
strict-origin只发源加密降级到 HTTP 时不发
origin-when-cross-origin同源完整,跨站只发源不处理降级场景
strict-origin-when-cross-origin同源完整,跨站只发源现代浏览器默认值
no-referrer-when-downgrade默认发完整地址仅 HTTPS 跳 HTTP 时不发
unsafe-url任何情况都发完整地址会泄漏地址里的参数

典型使用场景

  • 安全基线落地:把浏览器默认值显式写死在响应头里,避免不同客户端默认策略漂移
  • 含敏感参数的后台页面:用 no-referrer 防止查询串里的工单号、临时令牌随外链外泄
  • 第三方统计与广告归因:需要保留来源站信息时选 origin 级别,在统计可用与路径隐私之间取平衡
  • 防盗链场景:先确认服务端校验的是源还是完整地址,再定策略,避免校验规则与策略对不上
  • 内网系统与邮件通知里的跳转链接:减少来源路径暴露,降低钓鱼链条上的信息价值

服务端与页面配置

服务端与页面配置
# Nginx:加 always 保证错误页也带上该头
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
# Apache(httpd.conf 或 .htaccess)
# Header always set Referrer-Policy "no-referrer"
# 页面级声明,只影响本文档发起的请求
# <meta name="referrer" content="no-referrer">
验证分两步:curl -sI 确认响应头确实下发;再在浏览器打开页面点击站外链接,从目标站日志看 Referer 的实际形态。meta 声明在文档解析后才生效,页面首屏已发出的子资源请求可能仍按上一份策略携带来源。
unsafe-url 会把完整地址连同查询串里的会话标识、令牌、手机号发给第三方站点及其日志系统,等于主动交出凭证;含敏感参数的系统禁用该值,也应尽量避免把凭证放进查询串。

易错点

  • 只在页面里写 meta 而没配响应头:图片、脚本等子资源沿用旧策略,直接访问的接口请求更不受约束
  • 防盗链按完整地址匹配,却把策略设成只发源:Referer 里没有路径后校验全部失败,表现为第三方站点整片 403
  • 把策略切成 no-referrer-when-downgrade 时忽略降级差异:HTTPS 跳到 HTTP 的链接仍会带上来源
  • 把 Referrer-Policy 当成能拦住直接访问的防护:它只约束浏览器,用 curl 发请求完全不理会该策略

数据来源与参考

  • W3C Referrer Policy
  • MDN Referrer-Policy

相关工具

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