【Chrome 85 更新】淺談Referer-Policy 和更新影響 - MAX行銷誌

文章推薦指數: 80 %
投票人數:10人

HTTP Referrer-Policy 是什麼? 二. Chrome 85 Referer-Policy 更新了什麼? 三. 為什麼要做這項變動? 四. 有什麼影響? 跳至主要內容 文章目錄 一.開始之前,先科普一下HTTPReferer是什麼?HTTPReferrer-Policy是什麼?二.Chrome85Referer-Policy更新了什麼?三.為什麼要做這項變動?四.有什麼影響?五.如何測試此項改變六.如何修改Referrer-Policy參數1.Nginx上設定Referrer-Policy2.WordPress套件設定Referrer-Policy3.在html中設定Referrer-Policy 一.開始之前,先科普一下 HTTPReferer是什麼? 當使用者訪問網站時,會發送請求(request)給伺服器主機,而請求header中會有一個欄位是「referer」,而此欄位會存放當前請求來源的位置,也就是說請求的來源頁面。

舉個例子:當小明從「iT邦幫忙」網站中點擊連結後,進入「Max行銷誌」網站時,所發送的request請求referer就會是https://ithelp.ithome.com.tw/的網址。

補充冷知識:早期的人在講「referer」的時候拼錯字了,所以HTTP裡面的「referer」,正確拼法其實是「referrer」,但後來就將錯就錯了,變成一個軟體界著名的拼字錯誤案例XDD HTTPReferrer-Policy是什麼? 和剛剛「referer」敘述有點相同,當使用者訪問網站時,會發送請求(request)給伺服器主機,而請求header中會有一個欄位是「Referrer-Policy」,是用來限制「referer」欄位所回傳的網址詳細程度,可以設定的參數如下: Referrer-Policy:no-referrerReferrer-Policy:no-referrer-when-downgradeReferrer-Policy:originReferrer-Policy:origin-when-cross-originReferrer-Policy:same-originReferrer-Policy:strict-originReferrer-Policy:strict-origin-when-cross-originReferrer-Policy:unsafe-url 舉個例子:1.如果在Header中設定「Referrer-Policy:no-referrer」則伺服器接收到的請求中就不會有「referer」的來源資訊2.如果在Header中設定「Referrer-Policy:no-referrer-when-downgrade」則是當請求從https發送至http時,不會顯示「referer」的來源資訊 補充冷知識:GoogleAnalytics會讀取HTTPreferer來判別要分類到什麼類型(Organic/Social/Referral/Email…),也就是說如果沒有「referer」的話,會直接被GA判定為直接流量(direct)。

GoogleAnalyticsDefaultChannelGrouping 二.Chrome85Referer-Policy更新了什麼? Chromeplanstoswitchitsdefaultpolicyfromno-referrer-when-downgradetostrict-origin-when-cross-origin,startinginversion85.Thismeansthatifnopolicyissetforyourwebsite,Chromewillusestrict-origin-when-cross-originbydefault.Notethatyoucanstillsetapolicyofyourchoice;thischangewillonlyhaveaneffectonwebsitesthathavenopolicyset.AnewdefaultReferrer-PolicyforChrome:strict-origin-when-cross-origin Chrome將會在version85(時間是July2020forbeta,August2020forstable),將Referrer-Policy預設值從no-referer-when-downgrade改成strict-origin-when-cross-origin 廢話不多說,我們實際上操作設定一次,就知道發生什麼事了! ▍情境如下: 使用者從這篇文章中https://ithelp.ithome.com.tw/articles/10230353點擊了Max行銷誌的文章: 1.在Chrome85版本之前,Referrer-Policy預設值為no-referer-when-downgrade,所以在Headers裡面可以看到referer會顯示完整來源網址:https://ithelp.ithome.com.tw/articles/10230353 no-referrer-when-downgrade 2.在Chrome85版本之後,Referrer-Policy預設值為strict-origin-when-cross-origin,在Headers裡面看到referer僅會顯示origin網址:https://ithelp.ithome.com.tw/ strict-origin-when-cross-origin 小結論:也就是說當設定成strict-origin-when-cross-origin後,只要referer的origin與目前網頁的origin不相同,在cross-origin的請求就不會顯示referer完整的網址。

三.為什麼要做這項變動? strict-origin-when-cross-originoffersmoreprivacy.Withthispolicy,onlytheoriginissentintheRefererheaderofcross-originrequests.ThispreventsleaksofprivatedatathatmaybeaccessiblefromotherpartsofthefullURLsuchasthepathandquerystring.AnewdefaultReferrer-PolicyforChrome:strict-origin-when-cross-origin 有些網站會將個人資訊放置於網址參數中,像是www.example.com/?age=40&smoker=1&parent=&pregnant=1,而使用strict-origin-when-cross-origin這些資訊參數就會避免被洩漏給cross-origin的請求(像是Ads,Analytics…)。

Referrersleakinformation 四.有什麼影響? 像是GoogleAnalytics的FullReferer,未來可能就只會剩下origin的來源了,不再是完整的網址了。

GA–FullReferrer 五.如何測試此項改變 訪問chrome://flags/#reduced-referrer-granularity,將這個flagenabled,就會將Referrer-Policy的預設值修改成strict-origin-when-cross-origin囉 六.如何修改Referrer-Policy參數 1.Nginx上設定Referrer-Policy 如果是使用Nginx修改,只需使用add_header加上Referrer-Policy即可 add_headerReferrer-Policy"no-referrer"; 2.WordPress套件設定Referrer-Policy 如果是使用WordPress套件可以參考此篇:SettingaHTTPReferrerPolicy(Referrer-PolicyHeaders)inWordPress–Pagely®Support 3.在html中設定Referrer-Policy html中在meta中設定此份html的Referrer-Policy html中在



請為這篇文章評分?