Referrer referrer是HTTP請求header的報文頭,用於指明當前流量的來源參考頁面。通過這個信息,我們可以知道訪客是怎麼來到當前頁面的。這對於Web Analytics非常重要,可以用於分析不同渠道流量分佈、用戶搜索的關鍵詞等。 但是,這個欄位同時會造成用戶敏感信息泄漏(如:帶有敏 ...
Referrer
referrer是HTTP請求header的報文頭,用於指明當前流量的來源參考頁面。通過這個信息,我們可以知道訪客是怎麼來到當前頁面的。這對於Web Analytics非常重要,可以用於分析不同渠道流量分佈、用戶搜索的關鍵詞等。
但是,這個欄位同時會造成用戶敏感信息泄漏(如:帶有敏感信息的重置密碼URL,若被Web Analytics收集,則存在密碼被重置的危險)。
Referrer Policy States
新的Referrer規定了五種策略:
- No Referrer:任何情況下都不發送Referrer信息
- No Referrer When Downgrade:僅當協議降級(如HTTPS頁面引入HTTP資源)時不發送Referrer信息。是大部分瀏覽器預設策略。
- Origin Only:發送只包含host部分的referrer.
- Origin When Cross-origin:僅在發生跨域訪問時發送只包含host的Referer,同域下還是完整的。與Origin Only的區別是多判斷了是否Cross-origin。協議、功能變數名稱和埠都一致,瀏覽器才認為是同域。
- Unsafe URL:全部都發送Referrer信息。最寬鬆最不安全的策略。
referrer具體設置
CSP響應頭
CSP(Content Security Policy)
Content-Security-Policy: referrer no-referrer|no-referrer-when-downgrade|origin|origin-when-cross-origin|unsafe-url;
指令和指令值之間以空格分割,多個指令之間用英文分號分割。
標簽
html頁面的meta標簽指定。
如果content屬性不是合法的取值,瀏覽器會自動選擇no-referer策略。
<meta name="referrer" content="no-referrer|no-referrer-when-downgrade|origin|origin-when-crossorigin|unsafe-url">
標簽的referer屬性
- 作用的只是當前標簽。
- 策略只有三中:不傳、直傳host都傳。
- 針對單個鏈接設置的策略優先順序比CSP和要高。
<a href="http://example.com" referrer="no-referrer|origin|unsafe-url">xxx</a>
PS:
題外話:樓主之前使用CNZZ進行站長統計,7月份開始,單個頁面的訪問統計失效,全部歸入首頁。今天終於明白,應該是博客園增加了referrer policy導致。