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 的瀏覽器中載入。

另請參閱