返回知识中心
平台

用 Referrer-Policy 实现隐私一致的导航

通过实际 Referer 请求头理解同源、跨源、HTTPS 到 HTTP 降级与重定向。

BotBrowser Team

文档中心

想直接进入 平台 文档吗?

这篇文章属于博客内容库。若你要步骤化配置、参考说明和持续更新,请直接进入对应 docs 分区。

遇到路径意外泄露时,应检查实际请求,而不是笼统地问浏览器是否隐藏 referrer。现代默认 strict-origin-when-cross-origin 通常在同源时保留完整 URL,跨源 HTTPS 只保留来源,HTTPS 降级到 HTTP 时不发送 Referer。BotBrowser 可以重复已授权的配置和导航,但不能绕过浏览器策略或证明远端服务器如何保存数据。

语言中立图示:同源保留完整信息、跨源降低为来源、HTTPS 到 HTTP 被阻止。

要点

  • Referrer-Policy 决定发送值,请求头历史名称是 Referer。
  • strict-origin-when-cross-origin 区分同源、跨源和安全降级。
  • 每个重定向都是新请求,必须逐跳观察。
  • 需要隐藏来源时使用 no-referrer,不要把秘密放进 URL。
  • BotBrowser 重复声明的浏览器和配置条件,不保证服务器留存。

目录

策略与请求头

no-referrer 不发送值,same-origin 只向同源发送,origin 仅保留协议、主机和端口,strict-origin-when-cross-origin 只在同源保留完整 URL,跨源降为来源并抑制 HTTPS 到 HTTP。unsafe-url 可能暴露路径和查询,不适合敏感数据。Referer 是兼容性保留的历史拼写。

受控导航夹具

准备两个 HTTPS 来源和一个自有 HTTP 端点,使用合成 URL,记录每一跳的响应策略和请求头:

const seen = [];
page.on('request', request => {
  if (request.url().includes('/referrer-observation'))
    seen.push({ url: request.url(), referer: request.headers().referer ?? null });
});
await page.goto('https://source.example.test/start');
await page.getByRole('link', { name: 'cross-origin' }).click();

在现代策略下,预期同源为完整 URL、跨源 HTTPS 为 https://source.example.test/、HTTPS 到 HTTP 无 Referer。浏览器版本、请求模式和实际策略仍需一并记录。

来源、降级与重定向

来源由协议、主机和端口组成。仅改变路径仍是同源,改变任一元组成员就是跨源。“同站”不等于“同源”。重定向不会自动原样转发请求头;浏览器按每一跳的有效策略重新计算,跨源可减少路径,降级可清除来源。

证据决策矩阵

观察稳妥解释下一步
同源含完整路径允许同源细节仍应从 URL 移除秘密
跨源 HTTPS 仅含来源降级生效确认目标不需更多上下文
HTTPS 到 HTTP 无头降级受到保护保持 HTTPS
各跳不同每跳独立计算记录每个响应和请求
头意外缺失策略或模式抑制用最小夹具复测

Referer 不是身份证明,策略也不会删除已经写入的日志。BotBrowser 的主题能力是在声明的浏览器和配置中重复已授权导航并保留有限观察;限制是不能修改策略、读取其他来源日志或保证留存与合规结论。

结论

声明有效策略,用合成 URL 测试同源、跨源、HTTPS 到 HTTP 和重定向,检查真实 Referer,从 URL 移除秘密并坚持 HTTPS。只保留解释决策所需的最小证据。

常见问题

Referer 是拼写错误吗?

这是历史 HTTP 请求头名称;策略名称使用正确拼写 Referrer-Policy。

origin 会隐藏来源网站吗?

不会。它隐藏路径和查询,但可能发送协议、主机和端口。要隐藏来源本身请使用 no-referrer。

重定向能恢复完整 URL 吗?

不能。每个请求单独计算,后续响应不能追溯添加已省略的信息。

BotBrowser 会修改 Referer 吗?

它用于重复流程和测量;结果仍由浏览器策略、网络重定向和目标服务器决定。

延伸阅读

Public sources

示例使用的合成来源包括 https://source.example.test/`, https://source.example.test/start', https://old.example.test/account/overview`, https://new.example.test/home`, 以及 https://source.example.test/`、HTTPS.

#Referrer-Policy#Referer 请求头#浏览器隐私#同源#跨源

让 BotBrowser 从研究走向生产

先用这些指南理解模型,再进入跨平台验证、隔离上下文和面向规模化的浏览器部署。