防治運營商HTTP劫持的終極技術手段
運營商HTTP劫持(非DNS劫持)推送廣告的情況相信大家並不陌生,解決的方法大多也是投訴增值業務部門進而投訴工信部。但這種方法費時費力,投訴接聽人員並不瞭解情況導致答非所問的情況有很多,有時候不但受氣最終也沒能完全解決問題,或者解決問題後過了一段時間復發的情況並不少見。
近年來,運營商HTTP劫持非但沒有收斂,反而變本加厲,玩出了新花樣:比如通過HTTP劫持進行密碼截獲的活動;比如下載軟體被替換的情況;比如劫持進行返利(當然返利不是返給你)的情況。
本文介紹一種技術手段用來防止HTTP劫持,在大多數情況下不但可以解決廣告推送的問題,也能解決密碼截獲和下載軟體被替換的情況。最終的效果是運營商停止了HTTP劫持,而非劫持後通過瀏覽器外掛進行廣告過濾。此種方法的好處是既不用安裝瀏覽器外掛進行廣告過濾,也不用額外的伺服器(HTTP代理或VPN之類的),並且能防止下載軟體被替換和返利劫持,也能在一定程度上防範密碼的洩漏。
防治運營商HTTP劫持的終極技術手段
我的部落格:CODE大全:www.codedq.net;業餘草:www.xttblog.com;愛分享:www.ndislwf.com或ifxvn.com。
要說明這種技術手段的工作原理,首先需要說明大多數情況下運營商HTTP劫持的原理:
在使用者的瀏覽器連上被訪問的網站伺服器,傳送了HTTP請求後,運營商的路由器會首先收到此次HTTP請求,之後運營商路由器的旁路裝置標記此TCP連線為HTTP協議,之後可以搶在網站伺服器返回資料之前傳送HTTP協議的302程式碼進行下載軟體的劫持,瀏覽器收到302程式碼後就會跳轉到錯誤的軟體下載地址下載軟體了,隨後網站伺服器的真正資料到達後反而會被丟棄。或者,旁路裝置在標記此TCP連線為HTTP協議後,直接返回修改後的HTML程式碼,導致瀏覽器中被插入了運營商的廣告,隨後網站伺服器的真正資料到達後最終也是被丟棄。
從上述原理中看出,如果需要進行HTTP劫持,首先需要進行標記:如果是HTTP協議,那麼進行劫持,否則不進行劫持。那麼,是否有一種方法,既可以避免被旁路裝置標記為HTTP協議,而目標網站收到的仍舊是原來的HTTP請求,並且不需要任何第三方伺服器呢?答案是有的:
我的部落格:CODE大全:www.codedq.net;業餘草:www.xttblog.com;愛分享:www.ndislwf.com或ifxvn.com。
旁路裝置中檢測HTTP協議的模組通常比較簡單,一般只會檢測TCP連線建立後的第一個資料包,如果其是一個完整的HTTP協議才會被標記;如果並非是一個完整的HTTP協議,由於無法得到足夠多的劫持資訊,所以並不會被標記為HTTP協議(我們偉大的防火牆並非如此,會檢查後續資料包,所以這種方法無效)。瞭解了這種情況後,防止劫持的方法就比較簡單了:將HTTP請求分拆到多個資料包內,進而騙過運營商,防止了HTTP劫持。而目標網站的作業系統的TCP/IP協議棧比較完善,收到的仍舊是完整的HTTP請求,所以也不會影響網頁瀏覽。
那麼如何將瀏覽器發出的HTTP請求拆分到多個資料包中呢?我們可以在本地架設一個代理伺服器,在代理伺服器將瀏覽器的HTTP請求進行拆包,瀏覽器設定本地的代理伺服器即可。我這裡經過測試,預設設定的情況下對三大運營商(電信、聯通、移動)的HTTP劫持現象都有很好的抑制作用。
近年來,運營商HTTP劫持非但沒有收斂,反而變本加厲,玩出了新花樣:比如通過HTTP劫持進行密碼截獲的活動;比如下載軟體被替換的情況;比如劫持進行返利(當然返利不是返給你)的情況。
本文介紹一種技術手段用來防止HTTP劫持,在大多數情況下不但可以解決廣告推送的問題,也能解決密碼截獲和下載軟體被替換的情況。最終的效果是運營商停止了HTTP劫持,而非劫持後通過瀏覽器外掛進行廣告過濾。此種方法的好處是既不用安裝瀏覽器外掛進行廣告過濾,也不用額外的伺服器(HTTP代理或VPN之類的),並且能防止下載軟體被替換和返利劫持,也能在一定程度上防範密碼的洩漏。
防治運營商HTTP劫持的終極技術手段
我的部落格:CODE大全:www.codedq.net;業餘草:www.xttblog.com;愛分享:www.ndislwf.com或ifxvn.com。
要說明這種技術手段的工作原理,首先需要說明大多數情況下運營商HTTP劫持的原理:
在使用者的瀏覽器連上被訪問的網站伺服器,傳送了HTTP請求後,運營商的路由器會首先收到此次HTTP請求,之後運營商路由器的旁路裝置標記此TCP連線為HTTP協議,之後可以搶在網站伺服器返回資料之前傳送HTTP協議的302程式碼進行下載軟體的劫持,瀏覽器收到302程式碼後就會跳轉到錯誤的軟體下載地址下載軟體了,隨後網站伺服器的真正資料到達後反而會被丟棄。或者,旁路裝置在標記此TCP連線為HTTP協議後,直接返回修改後的HTML程式碼,導致瀏覽器中被插入了運營商的廣告,隨後網站伺服器的真正資料到達後最終也是被丟棄。
從上述原理中看出,如果需要進行HTTP劫持,首先需要進行標記:如果是HTTP協議,那麼進行劫持,否則不進行劫持。那麼,是否有一種方法,既可以避免被旁路裝置標記為HTTP協議,而目標網站收到的仍舊是原來的HTTP請求,並且不需要任何第三方伺服器呢?答案是有的:
我的部落格:CODE大全:www.codedq.net;業餘草:www.xttblog.com;愛分享:www.ndislwf.com或ifxvn.com。
旁路裝置中檢測HTTP協議的模組通常比較簡單,一般只會檢測TCP連線建立後的第一個資料包,如果其是一個完整的HTTP協議才會被標記;如果並非是一個完整的HTTP協議,由於無法得到足夠多的劫持資訊,所以並不會被標記為HTTP協議(我們偉大的防火牆並非如此,會檢查後續資料包,所以這種方法無效)。瞭解了這種情況後,防止劫持的方法就比較簡單了:將HTTP請求分拆到多個資料包內,進而騙過運營商,防止了HTTP劫持。而目標網站的作業系統的TCP/IP協議棧比較完善,收到的仍舊是完整的HTTP請求,所以也不會影響網頁瀏覽。
那麼如何將瀏覽器發出的HTTP請求拆分到多個資料包中呢?我們可以在本地架設一個代理伺服器,在代理伺服器將瀏覽器的HTTP請求進行拆包,瀏覽器設定本地的代理伺服器即可。我這裡經過測試,預設設定的情況下對三大運營商(電信、聯通、移動)的HTTP劫持現象都有很好的抑制作用。
這個軟體是個開源軟體,程式碼在: https://github.com/lehui99/ahjs5s 。如果發現有什麼問題,歡迎在Github上提Issue。如果有更新,我也會第一時間更新到Github上。
我的部落格:CODE大全:www.codedq.net;業餘草:www.xttblog.com;愛分享:www.ndislwf.com或ifxvn.com。
相關文章
- 微信終極秘籍:精通公眾號商業運營
- 運營商DNS劫持,臨時解決辦法、uc瀏覽器被運營商dns劫持怎麼辦DNS瀏覽器
- SSLStrip 終極版 —— location 劫持
- 技術與運營
- B站投資終極幻境,後者經營遊戲軟體的技術開發遊戲
- 運營商做終端,模式領先是關鍵模式
- 運營商暗戰WI-FI新技術橫空出世
- 運營商廣告劫持網站,作為網站主怎麼處理?網站
- 使用J2ME技術獲得手機的運營商型別型別
- 魏武揮:技術與運營
- apt技術手段防禦APT
- git伺服器技術總結終極版Git伺服器
- 運營,產品,技術,市場的區別
- IT技術運營概述 & IT深層變遷
- linux kernel記憶體碎片防治技術Linux記憶體
- 軟體工程師所需掌握的“終極技術”是什麼?軟體工程工程師
- 3xx HTTP狀態碼的終極指南HTTP
- Google DNS劫持背後的技術分析GoDNS
- 餓了麼是如何做技術運營的
- 如何運營好技術相關的自媒體?
- 運營和技術之間不可調和的“矛盾”
- 天貓、淘寶運營資料抓取技術概述
- 網路暗黑世界的“域影”攻擊:運營商劫持LOL等客戶端海量級掛馬客戶端
- Marin Software:88%的營銷商使用“訪客找回”技術
- 新媒體運營常用工具有哪些?新媒體運營技術
- 百度快照劫持技術解析
- Http與HTTP隧道技術HTTP
- 現代技術計算的終極系統:Mathematica mac中文版Mac
- 什麼是中介軟體?系統整合商系統整合的重要工具和技術手段
- mac下終極好用的shell,終極shellMac
- 商業週刊:黑五的終極購物指南
- OS X平臺的Dylib劫持技術(下)
- OS X平臺的Dylib劫持技術(上)
- 極限汽車運動控制 向量協同控制技術突破
- Gartner:運營技術與資訊科技界限愈加模糊
- 數商雲網際網路採購解決方案丨為供應商管理提供了新的技術手段
- 電信運營商網路運維方案運維
- 技術與商業案例解讀-徐飛-極客時間