Fiddler是即時抓包分析工具,對于測試WEB程序很有意義。Fiddler的魅力之處是提供了功能強大的基于JScript .NET事件腳本子系統(tǒng),方便用戶二次開發(fā)。
將網(wǎng)絡(luò)訪問信息以文本文件形式及時存儲到硬盤。網(wǎng)上有現(xiàn)成的代碼記錄請求信息:
由于上述方法存儲的文本文件,不便于檢索操作,更有甚者,如果不對所有訪問記錄進行過濾,則由于文件的打開和關(guān)閉過于頻繁而來不及響應(yīng)而報錯。
最簡單的數(shù)據(jù)庫是ACCESS,但是“.”、“?”等特殊字符無法存取??煽紤]較為通用的SQLServer數(shù)據(jù)庫,可以存取URL所包含的特殊字符。
Fiddler采用代理訪問的工作模式,轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)包,如果需采集局域網(wǎng)內(nèi)的計算機通過出口訪問數(shù)據(jù),需將主機配置成代理上網(wǎng)服務(wù)器。其它配置方式參考《Fiddler調(diào)試權(quán)威指南+PDF電子書》4.4配置客戶端部分。
在主機上配置SQL Server數(shù)據(jù)庫服務(wù)器。如:設(shè)置SQL驗證訪問,用 戶 名 為“fidd”,密碼 為“fiddaccess”。 創(chuàng)建 數(shù) 據(jù) 庫 capture,表recorder, 字 段 ttime,varchar(50)記錄時間;字段 uurl,varchar(8000) 記錄 Url信 息;字 段hhost,varchar(200)記錄被訪問主 機 名 ;字 段clientip,varchar(20)記錄請求訪問主機IP地址信息;字段rrefere,varchar(2000) 記錄自何頁面連接的主機名。
安 裝 Fiddler,打開Customize Rules.js就 可寫入腳本。如果菜單下沒有Rules->Customize Ruless,根據(jù)提示下載Fiddler ScriptEditor后,可 打開Customize Rules.js文件。
Customize Rules.js中包含OnBeforeRequest(oSession:Session) 和OnBeforeResponse(oSessio n: Session)兩大功能函數(shù)。本文目標是采集請求訪問的網(wǎng)絡(luò)資源,故只需在OnBeforeRequest(oSession:Session)函數(shù)的最后部分寫入代碼即可,代碼如下:
保存腳本文件后,運行Filddler。所有通過代理的訪問請求均被捕捉,并且執(zhí)行上述代碼將需要的信息及時保存到recorder表中。
使用數(shù)據(jù)庫Express版,連接字符串寫成Server=(local)\SQLExpress,若是服務(wù)版直接寫計算機名或IP地址。對數(shù)據(jù)表Recorder中的記錄進行匯總分析可得到各Http請求訪問的相關(guān)信息,可構(gòu)成簡單、實用的網(wǎng)絡(luò)監(jiān)控、審計、分析研判系統(tǒng)。
借助Customize Rules.js可擴展很多功能。比如只要添加2行代碼可實現(xiàn)防火墻功能:
if (oSession.fullUrl.Contains("**.net"))//需阻止訪問的網(wǎng)站
oSession.oRequest.pipeClient .EndWithRST()。