從2015年百度站長的一則公告回頭看百度的騷操做

背景

         百度曾公告於2015年6月25日正式取消Referer中關於關鍵詞的顯示。
html

1.什麼是Referer?有什麼做用?

          Referer請求頭包含瀏覽器進入到當前頁時前一頁的地址(若是存在),用於在當前請求中體現前一頁的信息。Referer標頭容許服務器識別人們訪問它們的位置,並可使用該數據進行分析,記錄或優化緩存。web

  • Referer請求頭由瀏覽器自動添加
  • Referer無形中提供了不少功能: 防盜鏈、站點優化;同時也衍生了一些安全和隱私性問題

https://developer.mozilla.org/en-US/docs/Web/Security/Referer_header:_privacy_and_security_concerns瀏覽器

 

2.爲何要取消Referer中關鍵詞的顯示?

          根據Referer的做用,按照常規作法,在咱們從百度關鍵詞搜索結果頁面A 進入某站點目標頁B,進入B頁面的Referer請求頭包含頁面A地址。緩存

         

該請求存在被運營商劫持、DNS劫持、廣告劫持的風險:網絡傳輸鏈路節點能從Referer中輕鬆拿到用戶的百度關鍵詞信息,是一個較大的隱私風險。安全

        不是說百度完成全站HTTPS化嗎?怎麼還會有DNS劫持,請注意,是百度全站完成HTTPS化,並非目標站點完成HTTPS, 該請求可能仍是一個HTTP請求。服務器

         百度在完成全站HTTPS化後決心 在隱私性上更進一步,所以宣佈全面取消Referer關鍵詞顯示。網絡

 

3. Referer的變化對生態鏈各方形成了什麼影響?

            BAT造成中國互聯網界上三座大山,各自造成了獨立的護城河和生態鏈,老虎一聲吼,地球抖一抖。 不少公司依賴百度的搜索功能提供增值服務,造成了完整的產業鏈。工具

百度全面取消Referer關鍵詞顯示的技術實現給各方形成了影響(注意,百度是取消了Referer中關鍵詞的顯示,不是去掉了Referer)。大數據

   ①  從終端用戶角度看,咱們從詞條搜索結果A進入某站點目標頁B,中間會發生瀏覽器跳轉,這在網速慢的時候很明顯。優化

   ②  DNS劫持者和一些公共WIFI

       影響最大的應該是DNS劫持者和一些公共WIFI,百度這塊的隱私數據已經完全被掐斷。

   ③ 一些實力差的網盟將退出歷史舞臺

    許多號稱有大數據背景的網盟本質上來講,都是從百度的搜索行爲拿數據。從百度啓用HTTPS,取消REFERER中的關鍵字之後,大量依靠這款數據的網盟公司在短時間內廣告展示質量會迅速降低。還有有一些廣告聯盟的大塊廣告分銷商就是作DNS劫持的,這些網盟恐怕之後日子更很差過了。

      ④ 統計工具

         沒法獲取Referer中的關鍵字之後,除了知道一個流量來自百度之外其餘無從知曉。因此百度的搜索份額仍是保留在統計中的,可是沒法基於此作進一步分析了。 缺失搜索數據的統計工具,是挖掘不出多少價值的。百度關閉了一扇門,打開了一扇窗,百度提供了自有的百度系統計工具和API 開放給第三方工具進行後續挖掘。 

 

4. 技術角度分析是怎樣完成這樣的騷操做的?

        依照上面常規的請求圖: A->B; 當咱們點擊A頁面中鏈接跳轉到B頁面,B頁面裏面Referer值就是A頁面地址。

  Referer 是瀏覽器自動添加的,不能刪除,那可考慮在進入B網頁時替換Referer。

  百度引入了中間頁P來完成這個替換操做:  A->P->B, B的Referer已經變成了網頁P。

 

下圖演示了度搜索結果頁面A,選中任意一個結果連接進入目標站點網頁B的過程

      

 

 

  •  因爲有了這個中間頁P,那麼關鍵詞的顯示與否就由百度站點一手控制了
  •  中間頁P由百度生成,P頁面的Referer正是A,可是咱們沒法抓取P請求(域名也在百度)
  •  進入着陸頁B的Referer請求頭是中間頁P,而P的關鍵詞信息已經加密。

使用Fiddler驗證(搜索關鍵詞 WebDissector):

     ①  網頁A中的原始搜索結果連接

 

 

      ② 點擊任意結果連接時原始連接被附加了 &wd=&eqid=******* , 造成完整的中間頁P

 

 

 仔細探究中間頁P的響應體:
<meta content = "always" name = "referrer">
<script >
try { if (window.opener && window.opener.bds && window.opener.bds.pdc && window.opener.bds.pdc.sendLinkLog) { window.opener.bds.pdc.sendLinkLog(); } } catch (e) {}; var timeout = 0; if (/bdlksmp/.test(window.location.href)) { var reg = /bdlksmp=([^=&]+)/, matches = window.location.href.match(reg); timeout = matches[1] ? matches[1] : 0 }; setTimeout(function () { window.location.replace("https://www.webdissector.cn/") }, timeout); window.opener = null; </script>
<noscript><META http-equiv="refresh" content="0;URL='https://www.webdissector.cn/'"></noscript>
  以上代碼的功能大體是:若是瀏覽器支持Javascript,則經過js跳轉到目標頁面,若是瀏覽器不支持Javascript,那麼也能經過最後的Meta標籤讓瀏覽器實現跳轉。
 
  中間頁P的url:www.baidu.com/link?url=g19mr6kuOtd-rH0lnHN1SRvGiCevp5qQam2vVd-X4WNPesjKS1uRiu98tV49REXl& wd=&eqid=b03f3d7e00007893000000025a911952
  能夠看到原來的wd(表明原始搜索詞)已經隱藏,後面的eqid值是加密後的word,
     (單一搜索結果頁面被附加的是同一個eqid)。
 

最後

  That's All,百度真是用心良苦,迴歸應用,流量關鍵詞做爲站長關注的首選重點,是數字營銷和用戶行爲分析領域中必須玩轉的技術功能點。
       百度云爲了知足站長獲取網站流量關鍵詞的數據分析需求提供了精細化的百度搜索Referer關鍵詞數據服務,在百度雲網絡環境內提供實時和批量獲取API,站長經過提供其網站Referer關鍵詞的eqid能夠獲取對應的Referer關鍵詞:  API文檔  
 
做者: JulianHuang

感謝您的認真閱讀,若有問題請大膽斧正,若是您以爲本文對你有用,不妨幫忙點個或加關注。

本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置註明本文的做者及原文連接,不然保留追究法律責任的權利。

 

原文出處:https://www.cnblogs.com/JulianHuang/p/10439409.html

相關文章
相關標籤/搜索