簡體   English   中英

為什么沒有為 Google HTTPS -> HTTP 刪除 Referer 標頭?

[英]Why isn't the the Referer header removed for Google HTTPS -> HTTP?

如果引用頁面是使用安全協議傳輸的,則客戶端不應在(非安全)HTTP 請求中包含Referer標頭字段。” https://tools.ietf.org/html/rfc2616#section-15.1.3

根據標准, https: Referer不應將RefererReferer送到非安全站點,但確實如此。 其他 HTTPS 站點是否將RefererReferer送到 HTTP 站點?

所有這些測試都是使用 Chrome v33.0.1750.117 完成的

要運行測試,我轉到第一頁,然后打開控制台並使用location = "http://reddit.com"手動執行重定向:

Google 是否做了一些特別的事情來保留Referer標頭? 是否有保留Referer標頭的 HTTPS 站點列表? 是否有其他任何刪除Referer標頭的情況?

當您使用 Google Chrome 進行 Google 搜索時,搜索結果中會出現以下標簽:

<meta content="origin" id="mref" name="referrer">

origin值意味着,當從https轉到http時,不是完全省略Referer ,而是應提供原始域名,而不是站點內的確切頁面(例如,搜索字符串將保持私有)。


另一方面,像龍蝦這樣的鏈接聚合器具有以下內容,這確保了整個 URL 將alwaysReferer提供(通過 Chrome 和 Safari 等瀏覽器),因為鏈接故事無論如何都是公開的:

<meta name="referrer" content="always" />

截至 2014 年年中,這個meta[@name="referrer"]只是 HTML5 的一個提議功能,並且它似乎沒有在 Gecko 中實現,例如 - 只有 Chrome 和 Safari 聲稱支持它.

http://smerity.com/articles/2013/where_did_all_the_http_referrers_go.html

https://bugzilla.mozilla.org/show_bug.cgi?id=704320

http://wiki.whatwg.org/wiki/Meta_referrer

cnst 在上面正確回答了這個問題; 它的內容=“起源”。 這會迫使瀏覽器通過 HTTPS->HTTPS 和 HTTPS->HTTP 獲得請求標頭:

http-referer=https://www.google.com  

此功能允許網站在不將 URL 參數泄露給第三方的情況下獲得流量信用。 它很棒,因為它比過去人們在這里使用的要少得多。

目前有三個相互競爭的規格。 我不知道哪個是權威的,並且懷疑它是混合的。 在大多數方面,它們是相似的。

這是我知道的可用支持; 如果我錯了或遺漏了什么,希望人們讓我知道。

現在:

  • Chrome 17+ 在桌面上支持這個
  • 適用於移動設備的 Chrome 25+
  • iPad 和 iPhone 上的 Safari 6

未知版本:

  • Desktop Safari 7 支持此功能; 早期版本可能支持,但我沒有瀏覽器來確認。

現在即將到來:

我認為這是因為谷歌使用

<meta name="referrer" content="always">

因此,當一個人從 HTTPS 轉到 HTTP 站點時,會保留引用者。 否則,如果沒有這個,推薦人將被剝離。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM