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-originsame-originstrict-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 |
瀏覽器相容性
載入中…