事前準備工作:
- 如果不清楚「網站」和「來源」的差異,請參閱「同網站」和「同來源」的說明。
Referer
標頭缺少 R,這是因為規格中的原始拼寫錯誤。JavaScript 和 DOM 中的Referrer-Policy
標頭和referrer
拼寫正確。
摘要
- 瀏覽器正朝著強化隱私權的預設參照政策方向演進,以便在網站未設定政策時提供良好的備用方案。
- Chrome 預計在 85 版中逐步啟用
strict-origin-when-cross-origin
做為預設政策,這可能會影響依賴其他來源參照網址值的用途。 - 這是新的預設值,但網站仍可自行選擇政策。
- 如要在 Chrome 中試用這項變更,請啟用
chrome://flags/#reduced-referrer-granularity
中的標記。您也可以查看這個示範影片,瞭解變更的實際效果。 - 除了參照網址政策之外,瀏覽器處理參照網址的方式也可能會有所變動,因此請密切留意。
異動內容和原因
HTTP 要求可能會包含選用的 Referer
標頭,用於指出要求的來源或網頁網址。Referer-Policy
標頭會定義 Referer
標頭中可用的資料,以及目的地 document.referrer
中的導覽和 iframe。
網站要求中 Referer
標頭傳送的確切資訊,取決於您設定的 Referrer-Policy
標頭。

如果未設定政策,系統會使用瀏覽器的預設值。網站通常會採用瀏覽器的預設值。
對於導覽和 iframe,您也可以使用 document.referrer
透過 JavaScript 存取 Referer
標頭中的資料。
直到最近,no-referrer-when-downgrade
才成為各瀏覽器廣泛採用的預設政策。不過,許多瀏覽器目前正轉向採用更能強化隱私權的預設值。
Chrome 預計從 第 85 版開始,將預設政策從 no-referrer-when-downgrade
切換為 strict-origin-when-cross-origin
。
也就是說,如果未為網站設定政策,Chrome 預設會使用 strict-origin-when-cross-origin
。請注意,您仍可自行設定政策;這項異動只會影響未設定政策的網站。
這項異動代表什麼?
strict-origin-when-cross-origin
可提供更多隱私權。套用這項政策後,跨來源要求的 Referer
標頭中只會傳送來源。
這樣一來,就能避免從完整網址的其他部分 (例如路徑和查詢字串) 存取私密資料。

例如:
跨來源要求,從 https://site-one.example/stuff/detail?tag=red 傳送至 https://site-two.example/…:
- 使用
no-referrer-when-downgrade
:參照來源:https://site-one.example/stuff/detail?tag=red。 - 使用
strict-origin-when-cross-origin
:參照網址:https://site-one.example/。
哪些部分會維持不變?
- 與
no-referrer-when-downgrade
一樣,strict-origin-when-cross-origin
也是安全的:當要求從 HTTPS 來源 (安全) 傳送至 HTTP 來源 (不安全) 時,不會出現參照網址 (Referer
標頭和document.referrer
)。如此一來,如果您的網站使用 HTTPS (如果沒有,請優先採用),您的網站網址就不會在非 HTTPS 要求中洩漏,因為網路上的任何人都可以看到這些網址,因此使用者可能會遭受中間人攻擊。 - 在相同來源中,
Referer
標頭值為完整網址。
舉例來說,從 https://site-one.example/stuff/detail?tag=red 傳送至 https://site-one.example/… 的相同來源要求:
- 使用
strict-origin-when-cross-origin
:參照來源:https://site-one.example/stuff/detail?tag=red
影響為何?
根據與其他瀏覽器的討論和 Chrome 在 Chrome 84 中執行的實驗結果,使用者可見的錯誤應會受到限制。
伺服器端記錄或分析功能需要完整的參照網址,因此可能會受到這類資訊精細程度降低的影響。
您需要做些什麼?
Chrome 預計從第 85 版開始推出新的預設參照政策 (Beta 版為 2020 年 7 月,穩定版為 2020 年 8 月)。請參閱 Chrome 狀態項目中的狀態。
瞭解並偵測變更
如要瞭解新預設值的實際變更內容,請參閱這個示範。
您也可以使用這個示範,偵測在您執行的 Chrome 例項中套用的政策。
測試變更,並判斷這項變更是否會影響網站
您現在就能試用 Chrome 81 以上版本的這項變更:在 Chrome 中前往 chrome://flags/#reduced-referrer-granularity
並啟用旗標。啟用這個標記後,所有沒有政策的網站都會使用新的 strict-origin-when-cross-origin
預設值。

您現在可以查看網站和後端的運作情形。
另一個可用來偵測影響的做法,是檢查網站的程式碼庫是否使用參照來源,也就是透過伺服器上傳入要求的 Referer
標頭,或從 JavaScript 中的 document.referrer
。
如果您使用其他來源的請求參照網址 (具體來說是路徑和/或查詢字串),且該來源使用瀏覽器的預設參照網址政策 (也就是沒有設定政策),網站上的某些功能可能會中斷或出現不同的行為。
如果這項政策會影響你的網站,請考慮使用其他方式
如果您使用參照來源來存取網站要求的完整路徑或查詢字串,可以採取以下幾種做法:
- 請使用其他技巧和標頭 (例如
Origin
和Sec-fetch-Site
) 來進行 CSRF 防護、記錄及其他用途。請參閱「參照網址和參照網址政策:最佳做法」。 - 如有需要,您可以與合作夥伴協調特定政策,並向使用者說明相關資訊。存取控制:當網站使用參照網址授予其他來源對其資源的特定存取權時,就會發生這種情況,不過在 Chrome 變更後,來源仍會在
Referer
標頭 (以及document.referrer
) 中共用。
請注意,大多數瀏覽器在參照來源方面都朝著類似的方向發展 (請參閱「參照來源和參照來源政策:最佳做法」一文,瞭解瀏覽器的預設設定和演進歷程)。
在網站上實施明確的隱私權強化政策
在網站原始要求中,應傳送哪些 Referer
,也就是說,您應為網站設定哪些政策?
即使 Chrome 已改變心意,建議您現在就設定明確的隱私權強化政策,例如 strict-origin-when-cross-origin
或更嚴格的政策。
這麼做可保護使用者,並讓網站在不同瀏覽器中運作時更穩定可靠。這項功能主要讓您掌控網站,而非讓網站依賴瀏覽器預設值。
如要進一步瞭解如何設定政策,請參閱「參照網址和參照網址政策:最佳做法」。
關於 Chrome Enterprise
如要強制在企業環境中使用先前的預設參照政策 no-referrer-when-downgrade
,IT 管理員可以使用 Chrome Enterprise 政策 ForceLegacyDefaultReferrerPolicy
。這可讓企業有更多時間測試及更新應用程式。
這項政策將在 Chrome 88 版中移除。
提供意見
您是否有意見回饋或想回報任何內容?請針對 Chrome 的出貨意圖提供意見回饋,或在推文中向 @maudnals 提問。
感謝所有審查者提供意見回饋,特別是 Kaustubha Govind、David Van Cleve、Mike West、Sam Dutton、Rowan Merewood、Jxck 和 Kayce Basques。