Referrer-Policy

基线 广泛可用

此功能已得到广泛应用,并在许多设备和浏览器版本中均能正常工作。自以下日期起,各浏览器均已提供此功能 2021年9月.

Referrer-Policy HTTP 标头 控制发送请求时包含多少 引用者信息(通过 Referer 标头发送)。除了 HTTP 标头外,您还可以 在 HTML 中设置此策略

标头类型 响应标头
禁止的标头名称

语法

http
Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

注意:原始标头名称 Referer 是“referrer”(引用者)一词的拼写错误。Referrer-Policy 标头没有此拼写错误。

指令

no-referrer

将省略 Referer 标头:发送的请求不包含任何引用者信息。

no-referrer-when-downgrade

当协议安全级别保持不变或提高时(HTTP→HTTP、HTTP→HTTPS、HTTPS→HTTPS),在 Referer 中发送 来源、路径和查询字符串。对于发送到安全性较低的目的地(HTTPS→HTTP、HTTPS→file)的请求,不要发送 Referer 标头。

origin

仅在 Referer 标头中发送 来源。例如,https://example.com/page.html 中的文档将发送引用者 https://example.com/

origin-when-cross-origin

当对同一协议级别执行 同源 请求时(HTTP→HTTP、HTTPS→HTTPS),发送 来源、路径和查询字符串。对于跨源请求以及发送到安全性较低的目的地(HTTPS→HTTP)的请求,仅发送来源。

same-origin

对于 同源 请求,发送 来源、路径和查询字符串。对于跨源请求,不要发送 Referer 标头。

strict-origin

当协议安全级别保持不变时(HTTPS→HTTPS),仅发送来源。对于发送到安全性较低的目的地(HTTPS→HTTP)的请求,不要发送 Referer 标头。

strict-origin-when-cross-origin(默认值)

执行同源请求时,发送来源、路径和查询字符串。对于跨源请求,当协议安全级别保持不变时(HTTPS→HTTPS),仅发送来源。对于发送到安全性较低的目的地(HTTPS→HTTP)的请求,不要发送 Referer 标头。

注意:如果未指定策略,或提供的策略值无效(请参阅规范修订版 2020年11月),则此为默认策略。以前,默认值为 no-referrer-when-downgrade

unsafe-url

执行任何请求时,无论安全性如何,均发送来源、路径和查询字符串。

警告:此策略会将 HTTPS 资源 URL 中的潜在隐私信息泄露到不安全的来源。请仔细考虑此设置的影响。

与 HTML 集成

您还可以在 HTML 内部设置引用者策略。例如,您可以使用 <meta> 元素(其 namereferrer)为整个文档设置引用者策略

html
<meta name="referrer" content="origin" />

您可以在 <a><area><img><iframe><script><link> 元素上指定 referrerpolicy 属性,以针对各个请求设置引用者策略

html
<a href="http://example.com" referrerpolicy="origin"></a>

或者,您可以在 aarealink 元素上设置 noreferrer 链接关系

html
<a href="http://example.com" rel="noreferrer"></a>

警告:如上所示,noreferrer 链接关系的写法不带连字符。当您使用 <meta> 元素为整个文档指定引用者策略时,应带连字符编写:<meta name="referrer" content="no-referrer">

与 CSS 集成

CSS 可以获取从样式表中引用的资源。这些资源也遵循引用者策略

  • 外部 CSS 样式表使用默认策略(strict-origin-when-cross-origin),除非 CSS 样式表的响应中的 Referrer-Policy HTTP 标头将其覆盖。
  • 对于 <style> 元素或 style 属性,将使用拥有文档的引用者策略。

示例

no-referrer

来自文档 导航到 使用的引用者
https://example.com/page 任何地方 (无引用者)

no-referrer-when-downgrade

来自文档 导航到 使用的引用者
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/page
https://example.com/page http://example.com (无引用者)

origin

来自文档 导航到 使用的引用者
https://example.com/page 任何地方 https://example.com/

origin-when-cross-origin

来自文档 导航到 使用的引用者
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com/page https://example.com/

same-origin

来自文档 导航到 使用的引用者
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org (无引用者)

strict-origin

来自文档 导航到 使用的引用者
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (无引用者)
http://example.com/page 任何地方 http://example.com/

strict-origin-when-cross-origin

来自文档 导航到 使用的引用者
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (无引用者)

unsafe-url

来自文档 导航到 使用的引用者
https://example.com/page?q=123 任何地方 https://example.com/page?q=123

指定回退策略

如果要指定回退策略(以防所需策略的浏览器支持范围不够广),请使用逗号分隔的列表,并将所需策略指定在最后

http
Referrer-Policy: no-referrer, strict-origin-when-cross-origin

在上述情况下,仅当浏览器不支持 strict-origin-when-cross-origin 策略时,才会使用 no-referrer

注意:仅在 Referrer-Policy HTTP 标头中支持指定多个值,在 referrerpolicy 属性中不支持。

浏览器特定偏好/设置

Firefox 首选项

您可以在 Firefox 首选项中配置默认引用者策略。首选项名称因版本而异

  • Firefox 59 及更高版本:network.http.referer.defaultPolicy(以及专用网络的 network.http.referer.defaultPolicy.pbmode
  • Firefox 53 到 58 版本:network.http.referer.userControlPolicy

所有这些设置都采用相同的取值范围:0 = no-referrer1 = same-origin2 = strict-origin-when-cross-origin3 = no-referrer-when-downgrade

规范

规范
引用者策略
# referrer-policy-header

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅