對話企業家陶利——做企業靠 19年前,他是一個程序員,初出茅廬,經驗不足,憑借一己之力闖世界;
省市領導蒞臨億恩科技推進電 12月22日上午,由河南省商務廳,鄭州市商務局有關領導蒞臨河南省億
怎樣選擇服務器托管商?如何 互聯網開展至今,服務器方面的受到越來越多人的注重,假如要停止服務器
運營商HTTP劫持(非DNS劫持)推送廣告的情況相信大家并不陌生,解決的方法大多也是投訴增值業務部門進而投訴工信部。但這種方法費時費力,投訴接聽人員并不了解情況導致答非所問的情況有很多,有時候不但受氣最終也沒能完全解決問題,或者解決問題后過了一段時間復發的情況并不少見。
近年來,運營商HTTP劫持非但沒有收斂,反而變本加厲,玩出了新花樣:比如通過HTTP劫持進行密碼截獲的活動;比如下載軟件被替換的情況;比如劫持進行返利(當然返利不是返給你)的情況。
本文介紹一種技術手段用來防止HTTP劫持,在大多數情況下不但可以解決廣告推送的問題,也能解決密碼截獲和下載軟件被替換的情況。最終的效果是運營商停止了HTTP劫持,而非劫持后通過瀏覽器插件進行廣告過濾。此種方法的好處是既不用安裝瀏覽器插件進行廣告過濾,也不用額外的服務器(HTTP代理或VPN之類的),并且能防止下載軟件被替換和返利劫持,也能在一定程度上防范密碼的泄漏。
防治運營商HTTP劫持的終極技術手段
要說明這種技術手段的工作原理,首先需要說明大多數情況下運營商HTTP劫持的原理:
在用戶的瀏覽器連上被訪問的網站服務器,發送了HTTP請求后,運營商的路由器會首先收到此次HTTP請求,之后運營商路由器的旁路設備標記此TCP連接為HTTP協議,之后可以搶在網站服務器返回數據之前發送HTTP協議的302代碼進行下載軟件的劫持,瀏覽器收到302代碼后就會跳轉到錯誤的軟件下載地址下載軟件了,隨后網站服務器的真正數據到達后反而會被丟棄。或者,旁路設備在標記此TCP連接為HTTP協議后,直接返回修改后的HTML代碼,導致瀏覽器中被插入了運營商的廣告,隨后網站服務器的真正數據到達后最終也是被丟棄。
從上述原理中看出,如果需要進行HTTP劫持,首先需要進行標記:如果是HTTP協議,那么進行劫持,否則不進行劫持。那么,是否有一種方法,既可以避免被旁路設備標記為HTTP協議,而目標網站收到的仍舊是原來的HTTP請求,并且不需要任何第三方服務器呢?答案是有的:
旁路設備中檢測HTTP協議的模塊通常比較簡單,一般只會檢測TCP連接建立后的第一個數據包,如果其是一個完整的HTTP協議才會被標記;如果并非是一個完整的HTTP協議,由于無法得到足夠多的劫持信息,所以并不會被標記為HTTP協議(我們偉大的防火墻并非如此,會檢查后續數據包,所以這種方法無效)。了解了這種情況后,防止劫持的方法就比較簡單了:將HTTP請求分拆到多個數據包內,進而騙過運營商,防止了HTTP劫持。而目標網站的操作系統的TCP/IP協議棧比較完善,收到的仍舊是完整的HTTP請求,所以也不會影響網頁瀏覽。
那么如何將瀏覽器發出的HTTP請求拆分到多個數據包中呢?我們可以在本地架設一個代理服務器,在代理服務器將瀏覽器的HTTP請求進行拆包,瀏覽器設置本地的代理服務器即可。我這里經過測試,默認設置的情況下對三大運營商(電信、聯通、移動)的HTTP劫持現象都有很好的抑制作用。