Referrer-Policy header
Baseline 广泛可用 *
HTTP Referrer-Policy
响应头 控制请求中应包含多少引荐来源信息(通过 Referer
头发送)。除了 HTTP 头之外,你还可以在 HTML 中设置此策略。
语法
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
same-origin
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>
元素设置整个文档的引荐来源策略,其中 name 为 referrer
<meta name="referrer" content="origin" />
你可以在 <a>
、<area>
、<img>
、<iframe>
、<script>
或 <link>
元素上指定 referrerpolicy
属性,以设置单个请求的引荐来源策略
<a href="http://example.com" referrerpolicy="origin">…</a>
或者,你可以在 a
、area
或 link
元素上设置 noreferrer
链接关系
<a href="http://example.com" rel="noreferrer">…</a>
警告: 如上所示,noreferrer
链接关系没有破折号。当你使用 <meta>
元素为整个文档指定引荐来源策略时,它应该带破折号:<meta name="referrer" content="no-referrer">
。
与 CSS 集成
CSS 可以获取样式表中引用的资源。这些资源也遵循引荐来源策略
示例
no-referrer
来自文档 | 导航到 | 使用的引荐来源 |
---|---|---|
https://example.com/page |
anywhere | (无引荐来源) |
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 | (无引荐来源) |
http://example.com/page | anywhere | http://example.com/page |
origin
来自文档 | 导航到 | 使用的引荐来源 |
---|---|---|
https://example.com/page |
anywhere | 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 | anywhere | 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 |
anywhere | https://example.com/page?q=123 |
指定备用策略
如果你想在所需策略没有足够广泛的浏览器支持时指定备用策略,请使用逗号分隔列表,并将所需策略指定在最后
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-referrer
、1 = same-origin
、2 = strict-origin-when-cross-origin
、3 = no-referrer-when-downgrade
。
规范
规范 |
---|
引荐来源策略 # referrer-policy-header |
浏览器兼容性
加载中…