search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

IT之家學院:說說網路流量劫持那些事

很多讀者可能曾經遇到這樣的情況:為什麼我點擊的是個正常的鏈接,跳轉到的網頁卻是宿遷摜蛋或者澳門賭場?為什麼我訪問正常的網站,右下角卻經常出現一刀9999級或者XX聊天室的彈窗?有些人會抱怨網站,不過有些時候你可能還真的錯怪網站了,如果網站是無辜的,那你很有可能遭到網路流量劫持了。那麼今天,IT之家就和大家聊聊網路流量劫持那些事。

這個話題說來話長,在開始之前,我們需要了解,我們是如何訪問到一個網站的。

互聯網的體量十分龐大,棲息在其中的網站多如繁星,每個網站都搭建在伺服器或伺服器集群中,就像我們撥打電話需要輸入電話號碼一樣,你要訪問某個網站,就要撥通那個網站所在的伺服器「電話號碼」,不過網站所用的「電話號碼」可不是7到8位的座機號碼或者11位的手機號碼,而是一串數字的組合,這串數字的組合被稱作IP地址,以百度的IPv4地址為例,則是202.108.22.5。

不過,我們要訪問的網站實在是太多了,每訪問一個網站就要記住一組IP地址,那豈不是太麻煩了。我們仍以撥打電話為例,可能我們的通訊錄中有100個聯繫人,這100個聯繫人的手機號碼我們無法全部記在腦子裡,但是當我們想要聯繫到其中的一個人時,我們可以輕鬆地打通他的電話而無論我們是否記得他的電話號碼。這是因為我們已經將他的電話號碼保存在了通訊錄里,當我們在通訊錄里找到他的名字並撥打他的電話時,他的名字會被我們的手機轉換為電話號碼,然後手機會將他的電話號碼提交給運營商的交換中心。

我們對網站的訪問也是如此。有一個系統,可以將便於我們記憶的,由單詞、拼音甚至漢字組成的被稱作「域名」的一串文字轉換為IP地址,這套系統被稱作「域名系統」,英文寫作「Domain Name System」,簡寫則是「DNS」。我們知道,百度的域名是www.baidu.com,當我們將這個域名輸入到瀏覽器的地址欄中並敲下回車時,這個地址會被DNS系統轉換為IP地址,你的瀏覽器便會根據這個IP地址找到並顯示該網站內容,DNS系統將域名轉換為IP地址的過程則被稱為「DNS解析」。

這裡,若以我們在手機中撥打電話做類比,域名就相當於聯繫人的名字,IP地址相當於聯繫人的手機號碼,而DNS系統則相當於手機中的通訊錄。

DNS系統存在於DNS伺服器上,DNS服務的提供方可能是網路運營商,也可能是第三方企業或組織,由運營商提供的DNS我們稱其為「運營商DNS」,由第三方企業或組織提供的DNS我們稱其為「公共DNS」,DNS十分重要,它可以決定我們可以通過域名訪問到什麼網站,因此,若DNS服務出現了什麼差池,那麼後果將十分惡劣。

我們已經了解了DNS服務的含義和作用,接下來我們來談談DNS劫持。

DNS劫持有善意的,也有惡意的。

我們在訪問互聯網時,由於地理原因或者其他原因,難免會遇到一些不穩定的、訪問速度慢的伺服器,為了讓我們可以更加快速地瀏覽互聯網上的內容,CDN應運而生。

CDN,全稱為Content Delivery Network,翻譯成中文便是「內容分發網路」,它的作用是接管由用戶發出的請求,並將此請求分配給最通暢的緩存伺服器,緩存伺服器中緩存了你要訪問的網站的數據,你的瀏覽器會優先下載緩存伺服器中的這些數據,若此時緩存伺服器中沒有你要訪問的網站的數據,它便會向父層詢問,直到回到源伺服器訪問,等到你下一次訪問這個網站時,你就可以直接訪問緩存伺服器中的數據了,因為緩存伺服器在將源伺服器中的數據原路送到你的手中時,它還會自己保存一份。

CDN服務本身並不提供DNS解析功能,但它依託於DNS解析,我們可以把CDN對你的請求的接管看作是一種善意的DNS「劫持」。

說完了善意的DNS劫持,我們說說惡意的。

對於一個網站來講,可觀的訪問量即意味著可觀的收入,有時為了提高訪問量,個別網站可能會不擇手段,惡意的DNS劫持便有了市場。

若運營商或公共DNS服務的提供方並沒有遵循「不作惡」的原則,那麼他們很可能是惡意DNS劫持的幫凶。事實上,惡意的DNS劫持已經形成了一條十分完整的產業鏈,網路運營商或者公共DNS提供方為了獲取利益,往往配合他們的這種行為,有時我們明明想訪問一個網站,卻跳轉到了預期之外的另一個網站,那麼你就要懷疑,是不是你的DNS提供商有什麼問題。

當然了,有時這個鍋也不能全讓運營商或者公共DNS服務商來背,他們深知DNS的重要性,一些小的手腳他們敢做,大的手腳就不一定了,比如「澳門賭場」這樣的網站,我覺得沒有哪個運營商或者公共DNS服務商敢接這樣的活兒,它的性質太惡劣了,接了這種活兒雖有可能帶來現時的利益,但是這對他們口碑的影響卻是十分負面而且巨大的。

別以為運營商或者公共DNS提供商拒絕為這種廣告主提供服務,他們就一點辦法也沒有,道高一尺魔高一丈,DNS提供商不幫他們搞流量劫持,那他們搞一個DNS投毒還不是美滋滋。

為了提高訪問效率,一般的計算機都有一套DNS緩存機制,當我們訪問過某個網站並得到了它的IP之後,下次再訪問就可以直接調用計算機本地的DNS緩存而無需再次通過DNS伺服器查詢,當然了,這個緩存是有時效的,過了有效期之後,再次訪問時,還是要先向DNS伺服器請求解析。

運營商的DNS伺服器很難被攻破,不過計算機本地的DNS緩存就相對容易淪陷了,所謂的DNS投毒,就是通過污染計算機本地的DNS緩存,使用虛假的IP地址信息來替換真實的IP地址信息,以實現DNS劫持,這種劫持效果和運營商的DNS劫持效果差不多。

說完DNS劫持,我們再說說HTTP劫持。

如何判斷你遭遇的流量劫持是DNS劫持還是HTTP劫持呢?很簡單,如果你要訪問的是A網站,點擊鏈接或按下回車后卻跳轉到了B網站,那麼你遇到的就是DNS劫持,如果你要訪問的是A網站,跳轉到的網站也確實是A網站,但是網頁中莫名其妙地出現了「一刀9999級」、「讓女人尖叫」、「屠龍寶刀,點擊就送」這樣的奇怪的彈窗廣告或者懸浮廣告,那麼你遇到的就是HTTP劫持。

所謂的HTTP劫持,是指來自網站的伺服器的數據在到達用戶的瀏覽器的半路上時,其數據被劫持並遭到篡改,這種情況一般出現在以http協議傳輸數據的網站上,因為這些數據是明文傳送的。

和DNS劫持一樣,雖然你遭遇的流量劫持在很多時候都要網路運營商來背鍋,不過有些時候也不盡然。如果你的電腦被惡意軟體感染,那麼該惡意軟體可能會在你瀏覽器顯示的頁面當中「加一些料」,其達到的效果和運營商的HTTP劫持大致相同,即在你打開的網頁上顯示彈窗廣告或懸浮廣告。

說了這麼多,我們總要想辦法避免流量劫持啊,那麼我們應該怎麼做呢?

以下是IT之家給大家的建議。

如何避免運營商DNS劫持?

如果你懷疑你的寬頻遭到了運營商的DNS劫持,那麼我們建議你使用靠譜的公共DNS。公共DNS的提供商有很多,IT之家這裡列舉一些比較知名的:

  • 阿里DNS:223.5.5.5和233.6.6.6

  • 百度DNS:180.76.76.76

  • DNSPod DNS+:119.29.29.29和182.254.116.116

  • CNNIC SDNS:1.2.4.8和210.2.4.8

  • oneDNS:112.124.47.27和114.215.126.16

  • DNS派電信/移動/鐵通:101.226.4.6和218.30.118.6

  • DNS派聯通:123.125.81.6和140.207。198.6

  • Google DNS:8.8.8.8和8.8.4.4

  • OpenDNS:208.67.222.222和208.67.220.220

以上的DNS僅供參考,你可以根據個人喜好挑選適合你的。

我們既然知道了公共DNS的伺服器地址,那麼我們如何使用它們呢?很簡單,以在Windows10當中設置DNS伺服器為阿里DNS為例:

將滑鼠游標放在計算機任務欄的網路狀態圖標上,單擊右鍵,點擊打開網路和共享中心;

選中Internet協議版本4(TCP/IPv4),點擊屬性按鈕;

把目光移向窗口的下半部分,選擇使用下面的DNS伺服器地址,將首選DNS伺服器的地址設置為223.5.5.5,將備選DNS伺服器的地址設置為223.6.6.6.6;

點擊窗口下方的確定按鈕。

如何避免運營商HTTP劫持?

如果你懷疑你遭遇了運營商的HTTP劫持,你應該立即撥打電話,向該運營商的客服投訴,一般情況下,運營商的客服一定不會承認運營商存在流量劫持的行為,這時你可以和客服這麼說:

好的,那我和工信部打電話投訴一下吧。

然後掛掉電話。幾分鐘以後,雖然運營商的客服依然沒有承認他們存在流量劫持的行為,但是此時你打開之前被劫持的網頁檢查,你會發現HTTP劫持的現象已經不存在了。

如何避免其它起因的DNS劫持或HTTP劫持?

我們在上文中說過,有時,DNS劫持或者HTTP劫持的鍋不能全讓運營商背,因為一些惡意軟體也有可能劫持DNS緩存或網頁。這時,你就要養成良好的上網習慣了。

一、從正規的渠道下載軟體。IT之家推薦你在該軟體的官方網站下載其安裝程序,或者使用軟媒魔方中的軟體管家功能。

二、不連接身份不明的網路,在連接至公共網路時,應關閉網路發現,關閉家庭組,打開Windows防火牆。

三、不上那些可能存在潛在危險的網站,至於哪些網站可能存在潛在危險,IT之家這裡不再列舉。

對網站站長的建議

如果你是網站站長,那麼我們建議你為你的網站啟用https安全連接,這樣,網站的數據在伺服器和用戶設備終端之間的傳輸是加密的,這在一定程度上可以避免HTTP劫持。

寫在最後

這篇文章的受眾是普通的互聯網用戶,本著淺顯易懂的原則,此文並不涉及高深的互聯網專業知識,在一些知識點上,可能本文並沒有進行深入探討。如果你是從事相關行業的專業人員,或者你是互聯網專業的高校學生,那麼這篇文章可能不適合你。

在撰寫這篇文章時,筆者參考了維基百科、技術博客以及論文期刊中的相關知識,若文中有定義錯誤或者事實錯誤,還請各位讀者不吝賜教。

想看到更多這類內容?去APP商店搜IT之家 ,天天都有小歡喜。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦