KNOWLEDGE ARTICLE
Referrer-Policy 是什么?
来源信息策略
控制跨页面请求时发送多少来源 URL 信息。
核心解释
Referrer-Policy 可以在隐私、统计归因和安全之间取舍。strict-origin-when-cross-origin 等策略会在跨站请求中只发送来源站点,而不暴露完整路径。
Referrer-Policy 如何控制来源 URL 泄露
浏览器从一个页面请求另一个资源时,可能在 Referer 标头中发送来源 URL。Referrer-Policy 控制发送完整地址、只发送来源站点,还是完全不发送,帮助网站在统计归因、兼容性与隐私之间取舍。标头名称历史上拼作 Referer,而策略名称使用 Referrer。
完整 URL 可能包含路径、查询参数和页面结构。如果应用把会话令牌、邮箱或内部标识放进 URL,跨站请求可能把这些信息带给第三方。根本措施是避免敏感数据进入 URL,策略则进一步限制正常导航和资源请求中的来源范围。
常见策略在同源、跨源和降级时如何变化
- strict-origin-when-cross-origin 通常在同源发送完整 URL,跨源只发送 scheme、host、port,HTTPS 降级到 HTTP 时不发送。
- no-referrer 完全不发送来源,隐私最强但会减少分析、联盟和安全日志中的归因信息。
- same-origin 只在同源请求发送,origin 与 strict-origin 只提供来源站点,其中 strict 额外限制安全降级。
- unsafe-url 可能在跨源发送完整路径,名称已经表明其隐私风险,除非有明确兼容需求通常不适合使用。
页面、链接与响应头的策略优先级
网站可以通过响应头设置页面默认策略,也可在 meta、iframe 或单个链接的 referrerpolicy 属性中更细粒度控制。浏览器按照规范确定适用策略,第三方脚本和重定向链仍可能改变最终接收方。
策略收紧可能影响广告、支付回跳、联盟统计和防盗链,需要先识别真正依赖 Referer 的业务。安全逻辑不应把 Referer 当作可靠认证,因为它可以缺失,也不适合作为不可伪造身份。
实际应用与信息解读
响应中明确的 Referrer-Policy 可以直接展示,并按同源、跨源和降级场景解释预期行为。没有标头时浏览器会使用自己的默认策略,不能简单写成“发送完整来源”。
判断潜在泄露要结合 URL 是否包含敏感参数和页面加载的第三方资源。策略宽松是风险线索,只有实际数据路径明确时才适合说明可能后果。
重点关注
策略宽松可能泄露更多路径信息,过严则可能影响分析归因;应结合页面是否含敏感 URL 参数判断。
常见问题
设置 no-referrer 会影响网站功能吗?
可能影响依赖来源归因、联盟统计或防盗链的功能,应在收紧前识别业务依赖。
Referer 可以作为访问权限判断吗?
不应。它可能被浏览器策略省略,也可能被非浏览器客户端伪造,不能替代认证授权。
没有 Referrer-Policy 会发送完整 URL 吗?
现代浏览器通常有默认策略,具体行为取决于浏览器和请求场景,未明确配置时不宜作绝对判断。