網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好
當前位置:酷知知識幫 > 遊戲數碼 > 電腦

HTTP請求攔截技術

欄目: 電腦 / 發佈於: / 人氣:2.22W

我們採用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張
Tags:HTTP 攔截 技術