這篇文章重點介紹了HTTP劫持(也稱為網頁劫持)和DNS劫持的區別。事實上,二者的差別很明顯,很容易分辨。DNS劫持與整個網頁跳轉不同,HTTP劫持通常只在頁面上添加一個小窗口,但是這個窗口并不屬于網頁本身的廣告,有時,不管你瀏覽什么網頁,這個窗口都不會消失,而且非常煩人。
平常大家上網時應該遇到的,就是無論打開什么網頁,下面的角落里有時都會出現一些小廣告,有時這些廣告,并不是去訪問的網站上的廣告,而是由第三方運營商提供的,這叫做HTTP劫持。
HTTP劫持的原則是在服務器與用戶之間傳遞信息時添加更多的內容,這是因為信息未被加密。要求用戶提供網站服務器,服務器將返回給用戶的網頁,在傳送過程中給他人添加物品的機會。即使DNS服務器可靠,也不能阻止HTTP劫持。
HTTP劫持的實現原理。
一般而言,HTTP劫持主要通過以下步驟完成:
1.識別HTTP連接??罩酗w行的眾多連接中,有很多種協議,第一步要做的就是找到TCP連接,找到應用層使用HTTP協議的連接,來進行識別。
2.篡改HTTP應答,可通過一個網關獲得數據包以進行內容篡改。
3.搶在回包之前,把篡改過的包搶先送到普通站點,然后再把后面的正常包送到用戶一邊。
和DNS劫持的區別舉例。
DNS劫持現象:您輸入的網址是http://www.google.com,出的是百度網頁;
HTTP劫持現象:你打開的是知乎頁面,右下角會出現廣告。
dns劫持:在DNS服務器上,改變了www.xxx.com的域名對應的IP地址。您解析的域名對應的IP,在劫持前后不相同;
HTTP劫持:您DNS解析的域名的IP地址沒有改變。與網站交互時,會截獲您的請求。還沒有發送到網站上的信息,就返回請求。
HTTP劫持解決方案。
應對HTTP劫持的最好辦法是使用HTTPS來連接網頁。并且采用HTTPS技術,數據在傳輸過程中被加密。原來有人在車窗上塞了一個小廣告,現在把窗戶關上了,別人自然就不能再插進去了。
HTTPS不僅能阻止HTTP劫持,而且還能很好地防止DNS劫持,因為HTTPS的安全性是通過SSL保證的,并且需要正確的證書才能建立連接。若DNS將域名解析為不對應的IP,則不能通過證書認證,連接將終止。
事實上,現在越來越多的網站都支持HTTPS,但為了兼容等問題,不少網站也同時提供HTTP連接,例如著名的視頻網站嗶哩嗶哩。主動使用HTTPS來進行連接,不但有效防止網頁劫持,還能夠保護隱私。
另外,可打電話到運營商客戶服務部門投訴,要求其撤消,不能的話向國家工信部投訴。