酷知百科網

位置:首頁 > 遊戲數碼 > 電腦

HTTP請求攔截技術

電腦2.28W

我們採用C#來實現,C#下有一個完整的WEB DEBUGGER(含代理服務器方式實現的HTTP請求攔截與篡改功能)--Fiddler,Fiddler是一個免費軟件,所以並沒有對源碼進行混淆和加密,反編譯後的代碼可讀性也很好。我們後面的所有代碼,主要就是參考他的代碼來實現,當然他實現的功能非常強大,我們僅僅是演示一下HTTP請求與攔截技術的實現,所以沒有必要完整的去模擬它,故而我們模擬的原則是,手動的一個類一個類一個方法一個方法的進行模擬,在模擬的過程中能簡化的儘量簡化,有些思路不太清楚,或者的確是重複造輪子的部分,就直接使用他的代碼,以後如果有時間,再對其源碼進行一次詳細的分析與研究,這次有些部分我們就不再深究了。

操作方法

(01)首先,我們來實現一個代理服務器,完成HTTP請求的攔截,先來看一看實現後的樣子,這樣有助於理解代碼。編譯後的程序,我拷貝了一份放在了附錄的根目錄下的Build檔案夾裏,在build檔案夾裏找到這個(圖1),雙擊啓動需要.net framework 4.0 沒有的到微軟官網下載。啓動後如圖所示:(圖2)

HTTP請求攔截技術
HTTP請求攔截技術 第2張

(02)這時候,我們開啟瀏覽器,隨便CHROME,FIREFOX還是IE,然後輸入  training.zhunxin.net 回車(Enter) 。看一下我們的主介面,沒有任何反應,這是正常的,因爲我們還沒有設定代理服務器。 :)任何瀏覽器,都有設定代理服務器的地方,鑑於天朝 IE的使用率,這裏講IE裏的操作步驟。開啟IE--工具--Internet選項--連接--局域網設定。(圖1)勾上(跳過本地地址的代理服務器不要勾選),然後點進階。(圖2)HTTPS和FTP等不要設定(本代理服務器未對這兩種協議進行處理),IP是127.0.0.1表示代理服務器是在本機,監聽端口設成8888,目前代碼裏寫死了。

HTTP請求攔截技術 第3張
HTTP請求攔截技術 第4張

(03)在IE裏設定完後,我們會發現其它瀏覽器也自動開始使用代理服務器了,這是因爲設定代理服務器是系統的功能,每個瀏覽器開啟的都是同一個設定代理服務器的程序看到這裏,大家是不是發現了什麼問題。我們不是以後每次要攔截的時候,都要手動設定一次代理服務器吧,-_-!!! ,當然,這是不可能的,後面我們將在篡改一節的開始,就實現一個自動設定代理服務器的功能,這樣,當我們的代理服務器啓動的時候,就自動將本機的代理服務器設定成自己,退出的時候,再恢復成原樣,這樣就不再需要向上面一樣手動設定了。OKAY, 一切就緒了,這時候,再次在瀏覽器裏輸入網址:training.zhunxin.net。看下主介面:(圖1)看左邊,會話已經被監聽到了。我們點第一欄的編號爲1的會話,介面如下:(圖2)看右邊,先看上面的文字方塊,這裏顯示出了HTTP請求的頭資訊,再看下面的文字方塊,這裏也顯示出了HTTP響應的頭資訊。從這兩張圖裏我們可以清楚看到,所有的請求和響應資訊都已經被我們監聽到了。再看一下瀏覽器,網頁也正常的開啟了,速度也不是很慢,看來,我們的代理服務器算是正常的運轉起來了。

HTTP請求攔截技術 第5張
HTTP請求攔截技術 第6張
標籤:HTTP 攔截 技術