日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

十分钟学会 Fiddler

發(fā)布時(shí)間:2024/6/21 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 十分钟学会 Fiddler 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.Fiddler介紹

Fiddler是一個(gè)http抓包改包工具,fiddle英文中有“欺騙、偽造”之意,與wireshark相比它更輕量級(jí),上手簡(jiǎn)單,因?yàn)橹荒茏ttp和https數(shù)據(jù)包,所以在針對(duì)http和https數(shù)據(jù)包的抓取上它更加專業(yè)。

不僅可以記錄客戶端和服務(wù)器的http(s)請(qǐng)求,還能設(shè)置斷點(diǎn),修改請(qǐng)求和響應(yīng)的數(shù)據(jù),模擬弱網(wǎng)絡(luò)環(huán)境。如果這些還滿足不了你的需求,你還可以安裝插件對(duì)Fiddler現(xiàn)有的功能進(jìn)行擴(kuò)展,甚至編寫腳本實(shí)現(xiàn)一些自動(dòng)化操作。

二.Fiddler的工作原理

當(dāng)我們?yōu)g覽網(wǎng)頁(yè)的時(shí)候,實(shí)際上瀏覽器會(huì)通過(guò)tcp連接以http數(shù)據(jù)包的形式向服務(wù)器發(fā)起請(qǐng)求的,服務(wù)器在接收到請(qǐng)求后會(huì)根據(jù)后臺(tái)代碼邏輯做出不同的響應(yīng)。

以上是系統(tǒng)中沒有代理,用的是直連網(wǎng)絡(luò)的情況。這時(shí)候如果系統(tǒng)中設(shè)置了靜態(tài)http代理,那么瀏覽器所有外發(fā)的http請(qǐng)求會(huì)被重定向到代理服務(wù)器,代理服務(wù)器會(huì)根據(jù)請(qǐng)求的目的ip將請(qǐng)求再轉(zhuǎn)發(fā)至相應(yīng)的服務(wù)器。同理,服務(wù)器返回給瀏覽器的數(shù)據(jù)也要經(jīng)過(guò)代理這一層。

其實(shí)Fiddler所做的和代理服務(wù)器是一樣的事情,當(dāng)我們啟用Fiddler之后,ie的http(s)代理會(huì)自動(dòng)被設(shè)置為127.0.0.1:8888(之所以這么設(shè)置是因?yàn)镕iddler是在本地8888端口進(jìn)行監(jiān)聽的), 所有http(s)會(huì)話的都會(huì)被Fiddler攔截。Fiddler監(jiān)聽的端口號(hào)可以在下面這個(gè)地方更改:

使用http://localhost:8888/可以訪問(wèn)到Fiddler的echo服務(wù)

至于Fiddler為啥可以抓https包,其實(shí)是利用了類似中間人攻擊的技術(shù),看下面這張圖:

在了解Fiddler解密https的原理之前,我們首先要知道標(biāo)準(zhǔn)的https通信原理。在https通信中,運(yùn)用到了兩種加密技術(shù)——對(duì)稱加密技術(shù)和非對(duì)稱加密技術(shù)(RSA),非對(duì)稱加密用來(lái)在握手過(guò)程中傳輸對(duì)稱秘鑰,而對(duì)稱加密技術(shù)是握手完成之后實(shí)際使用的通信加密技術(shù)。

https實(shí)際通信過(guò)程可以分為兩步走:

第一步,客服端和服務(wù)器協(xié)商通信使用的密鑰(對(duì)稱密鑰)。

這個(gè)過(guò)程可以簡(jiǎn)單描述為——客戶端發(fā)起請(qǐng)求獲取服務(wù)器的證書,證書里包含了服務(wù)器的RSA公鑰。客戶端生成通信用的對(duì)稱密鑰,使用服務(wù)器的公鑰加密后傳輸給服務(wù)器。服務(wù)器接收到之后使用自己的RSA私鑰解密得到傳輸用的明文秘鑰。

第二步,客服端和服務(wù)器使用協(xié)商好的密鑰進(jìn)行加密通信。

了解以上常識(shí)后我們?cè)倏碏iddler解密https的過(guò)程其實(shí)不難:

客戶端發(fā)起請(qǐng)求,中間人(Fiddler)會(huì)攔截來(lái)自客戶端的請(qǐng)求,并將偽造的ca證書派發(fā)給客戶端。同時(shí)Fiddler向服務(wù)器請(qǐng)求,獲得服務(wù)器的ca證書。客戶端接收到來(lái)自中間人(Fiddler)的證書,還傻傻的以為這個(gè)證書是來(lái)自服務(wù)器的,并且使用證書里的公鑰(其實(shí)是Fiddler的公鑰)對(duì)生成的通信秘鑰(對(duì)稱密鑰)加密,發(fā)送給服務(wù)器。可憐的是這個(gè)數(shù)據(jù)包也會(huì)被中間人(Fiddler)攔截。中間人(Fiddler)使用自己的私鑰將數(shù)據(jù)包解密,很輕松地得到了通信秘鑰。之后使用服務(wù)器的RSA公鑰對(duì)通信密鑰加密后傳輸給服務(wù)器。服務(wù)器接收到“客戶端”(其實(shí)是Fiddler)發(fā)送給自己的密鑰,使用RSA私鑰解密得到明文密鑰后,建立信任。握手完成。使用對(duì)稱密鑰加密消息, 開始通信。后面的事情大家應(yīng)該就明白了,由于Fiddler持有通信秘鑰,客戶端和服務(wù)器的通信對(duì)其始終是透明的。這篇文章里有更加詳細(xì)的描述,文章鏈接:http://www.mehdi-khalili.com/Fiddler-in-action/part-1/

三.Fiddler的使用

網(wǎng)上介紹Fiddler各種功能的帖子已經(jīng)不少了,這里就結(jié)合我工作中的使用來(lái)總結(jié)下Fiddler的幾個(gè)常見的使用場(chǎng)景。

1.模擬瀏覽器白屏的同時(shí)不影響正常抓包(可學(xué)習(xí)到:使用Fiddler設(shè)置斷點(diǎn),QuickExec命令)。

因?yàn)橛惺盏侥承┯脩舴答丵B在某些環(huán)境下會(huì)出現(xiàn)白屏現(xiàn)象,為了針對(duì)白屏問(wèn)題進(jìn)行優(yōu)化,需要對(duì)白屏現(xiàn)象穩(wěn)定復(fù)現(xiàn)。當(dāng)然瀏覽器白屏可能是多種因素造成的,瀏覽器崩潰,網(wǎng)絡(luò)卡慢導(dǎo)致網(wǎng)頁(yè)遲遲不能加載,亦有可能網(wǎng)頁(yè)本身就有問(wèn)題……

經(jīng)過(guò)和開發(fā)同學(xué)了解,目前重點(diǎn)要解決的是首頁(yè)白屏問(wèn)題,QB首頁(yè)從開始導(dǎo)航到渲染成功中間有一段間隙,在這段間隙里網(wǎng)頁(yè)在視覺上會(huì)保持“白屏”的狀態(tài),如果這個(gè)時(shí)間比較長(zhǎng)就會(huì)給用戶不好的體驗(yàn)。可以給這種“白屏”做一個(gè)具體的定義:首頁(yè)打開20s后如果仍未成功渲染就定義為發(fā)生了一次“白屏”現(xiàn)象。測(cè)試的時(shí)候我們要模擬這種白屏現(xiàn)象,只要找到一種方法可以讓標(biāo)簽頁(yè)打開20s之內(nèi)始終保持“白屏”狀態(tài)即可。

當(dāng)然對(duì)網(wǎng)絡(luò)進(jìn)行限速可以達(dá)到這個(gè)目的,但是我測(cè)試中有在模擬白屏的同不影響正常抓包的需求,而一般的限速工具(比如電腦管家)只是應(yīng)用級(jí)的限速,無(wú)法做到針對(duì)特定請(qǐng)求限速。

所以首先想到的是使用Fiddler的設(shè)置http斷點(diǎn)功能,將QB啟動(dòng)時(shí)發(fā)起的導(dǎo)航頁(yè)請(qǐng)求卡住,讓其遲遲不能獲取導(dǎo)航頁(yè)服務(wù)器的響應(yīng),保持這個(gè)狀態(tài)20s即可成功觸發(fā)“白屏”現(xiàn)象。點(diǎn)擊Fiddler左下角的這個(gè)位置,默認(rèn)這個(gè)位置是空白的,當(dāng)點(diǎn)擊后圖標(biāo)變?yōu)橄蛏系募^時(shí)Fiddler會(huì)攔截所有http(s)請(qǐng)求,如果是向下的箭頭會(huì)攔截所有的響應(yīng)。請(qǐng)求被攔截時(shí)QB會(huì)一直保持白屏狀態(tài),維持20s觸發(fā)“白屏”。全局?jǐn)帱c(diǎn)會(huì)攔截所有的http(s)請(qǐng)求,如果只想模擬導(dǎo)航頁(yè)的白屏,可以設(shè)置下filters,但是如果想模擬導(dǎo)航頁(yè)白屏的同時(shí)不影響其他網(wǎng)頁(yè)的正常抓包,我們還得求助于bpu命令。

bpu是一個(gè)QuickExec命令, QuickExec命令輸入框在fiddler的左下方可以找到(那個(gè)黑色的長(zhǎng)條)。bpu命令格式:bpu {url},這里直接在QuickExec下輸入bpu https://daohang.qq.com/?fr=hmpage,就會(huì)成功設(shè)置斷點(diǎn),只要一發(fā)現(xiàn)url為https://daohang.qq.com/?fr=hmpage的請(qǐng)求,F(xiàn)iddler就會(huì)將其中斷。而其他的http請(qǐng)求仍然可以正常發(fā)送。這種方法可以在制造白屏的同時(shí)正常抓包。如果想取消之前設(shè)置的斷點(diǎn)在QuickExec下直接輸入bpu(無(wú)參數(shù))即可。

由此延伸著學(xué)習(xí)了下Fiddler提供的一些常見的QuickExec的命令,列舉幾個(gè)相對(duì)來(lái)說(shuō)比較實(shí)用的:

Tips:

(1)和bash shell類似,使用方向鍵上、下,可以切換QuickExec歷史命令;

(2)值得一提的是內(nèi)置的QuickExec命令其實(shí)是通過(guò)FiddlerScript(FiddlerScript會(huì)在下一部分介紹)定義的,如果這些命令仍舊不能滿足你的需求,你可以在對(duì)應(yīng)的地方添加自定義命令。

2.修改網(wǎng)絡(luò)請(qǐng)求

在工作中時(shí)不時(shí)會(huì)因某些原因需要修改網(wǎng)絡(luò)請(qǐng)求,主要有以下場(chǎng)景(但不限于此):

當(dāng)前請(qǐng)求的的內(nèi)容與將要上線的功能存在局部差異,一般是一些請(qǐng)求參數(shù)的差異;某些后臺(tái)服務(wù)ip或端口發(fā)生變更。

當(dāng)然你可以使用Fiddler的composer對(duì)想要修改請(qǐng)求包進(jìn)行重構(gòu)——打開composer標(biāo)簽,將要修改的session拖到composer里即可修改。但是如果想對(duì)某些特定的url自動(dòng)的改包,還得使用FiddlerScript來(lái)做。使用FiddlerScript的簡(jiǎn)要步驟如下:

(1)安裝Fiddler script editor插件,安裝后可以在右側(cè)發(fā)現(xiàn)多了一個(gè)選項(xiàng)卡FiddlerScript:

(2)Fiddlerscript的語(yǔ)法和js有點(diǎn)類似,簡(jiǎn)單學(xué)習(xí)下,發(fā)現(xiàn)如果要改請(qǐng)求參數(shù)可以在OnBeforeRequest這個(gè)function里對(duì)Session對(duì)象的url屬性進(jìn)行修改。下面是一段示例代碼,可以做到自動(dòng)對(duì)GET請(qǐng)求中的個(gè)別參數(shù)修改:

(3)點(diǎn)擊左上角的【save script】保存修改.

(4)重新觸發(fā)請(qǐng)求,使用Fiddler抓包,可以看到host參數(shù)自動(dòng)被替換為了我們指定的值。

官方文檔上列舉了比較幾類常見的改包場(chǎng)景:

添加或刪除一個(gè)請(qǐng)求頭;

oSession.oRequest["NewHeaderName"] = "New header value";

oSession.oResponse.headers.Remove("Set-Cookie");

重定向請(qǐng)求的file、hostname、port;

if (oSession.PathAndQuery=="/version1.css")
oSession.PathAndQuery="/version2.css";

if (oSession.HostnameIs("www.bayden.com"))
oSession.hostname="test.bayden.com";

if (oSession.host=="www.bayden.com:8080")
oSession.host="test.bayden.com:9090";

3.線上文件映射到本地調(diào)試(可學(xué)習(xí)到:auto response)

使用Fiddler可以將線上的文件映射到本地調(diào)試,比如線上某個(gè)js文件有一個(gè)bug,這時(shí)你身邊的電腦上又沒有裝ide環(huán)境,你可以將這個(gè)js文件下載下來(lái)在本地修改,然后使用Fiddler的auto response功能將所有請(qǐng)求線上js的會(huì)話重定向到本地js文件,這樣就可以直接在線上實(shí)時(shí)觀察修改結(jié)果了。例如下圖里,我使用本地的jquery文件對(duì)線上jquery文件“替換”。

注意:線上引用的jquery之前是1.11.3的,加了auto response規(guī)則后再次請(qǐng)求后,F(xiàn)iddler使用本地3.1.1的jquery替換了原始的response。

4.Fiddler抓localhost(127.0.0.1)

有時(shí)候需要對(duì)本地的服務(wù)抓包分析,使用Fiddler也是可以抓到的。在localhost或127.0.0.1后面加點(diǎn)“.”就可以了,例如:http://localhost.:8080。另外使用本機(jī)ip或機(jī)器名訪問(wèn)Fiddler也是可以抓到的。

5.使用FiddlerCore做自動(dòng)化

除了擁有強(qiáng)大插件擴(kuò)展能力,F(xiàn)iddler還抽取了其核心能力為開發(fā)者封裝了一套sdk——FiddlerCore,可以將Fiddler的功能很好的集成到自己的應(yīng)用里。

不過(guò)遺憾的是FidderCore只支持.net開發(fā)(誰(shuí)讓作者是微軟的IE項(xiàng)目經(jīng)理呢......),可以使用Nuget為你的project集成FidderCore。

篇幅有限,有興趣的話可以去官網(wǎng)http://www.telerik.com/fiddler/fiddlercore下文檔學(xué)習(xí)。

四.結(jié)語(yǔ)

以上就是我個(gè)人使用Fiddler的經(jīng)驗(yàn)總結(jié),當(dāng)然Fiddler的功能遠(yuǎn)遠(yuǎn)不止這些,比如:移動(dòng)端抓包、模擬弱網(wǎng)絡(luò)、http性能測(cè)試、自動(dòng)化ApiTest等等,甚至可以使用Fiddler做反向代理,有興趣的同學(xué)可以繼續(xù)鉆研一下,下面是一些Fiddler學(xué)習(xí)的網(wǎng)站。

Fiddler官網(wǎng):
http://www.telerik.com/Fiddler

Fiddler的google論壇(Fiddler作者Eric Lawrence偶爾也會(huì)在上面回答一些問(wèn)題):
https://groups.google.com/forum/#!forum/httpFiddler。

不知大家在工作中是否用到fiddler、wirshark這類工具,是否有使用fiddler解決問(wèn)題的好案例?或者同學(xué)們?nèi)绻懈玫墓ぞ咄扑],都請(qǐng)?jiān)谠u(píng)論區(qū)討論一下吧!

相關(guān)推薦

零基礎(chǔ)學(xué)習(xí)Fiddler抓包改包

從wireshark抓包開始學(xué)習(xí)https

總結(jié)

以上是生活随笔為你收集整理的十分钟学会 Fiddler的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲第一视频 | 国产69视频在线观看 | 性色国产成人久久久精品 | 巨乳中文字幕 | 日韩免费网站 | 欧洲亚洲综合 | 国产成a人亚洲精v品在线观看 | 成人激情电影在线观看 | 欧美一级xxx | 欧美久久网 | 99re超碰| 黄色.com| 老牛影视av老牛影视av | 久久影院中文字幕 | 男人舔女人下部高潮全视频 | 动漫av一区| 国产视频二区 | 成人永久视频 | 加勒比在线一区 | 亚洲av熟女国产一区二区性色 | 欧洲天堂网 | 久久五月网 | 亚洲一区二区小说 | 美女扒开尿口让男人爽 | 中文字幕精品一区二区精 | 国语对白真实视频播放 | 成人精品毛片 | 丰满的女人性猛交 | 少妇精品无码一区二区免费视频 | 日韩中文字幕视频在线 | 男女aa视频 | 国产欧美久久久精品免费 | 国产精品国产自产拍高清av | 91麻豆精品一区二区三区 | 国产精品无码久久久久成人app | 日韩激情在线观看 | 国产欧美日韩91 | ass日本粉嫩pics珍品 | 一道本在线播放 | 黄色av免费观看 | 国产成人av网 | 人人99| 超碰美女在线 | 绿帽单男 | jizzz18 | 大奶一区二区 | 国产精品二区视频 | 免费在线观看污 | 91午夜精品亚洲一区二区三区 | 伊人黄网 | 一级国产黄色片 | 成人免费无码大片a毛片抽搐色欲 | 亚洲第一中文字幕 | 欧美成人免费播放 | 在线国产一区二区三区 | 欧美色图自拍 | 亚洲欧美va天堂人熟伦 | 中国zzji女人高潮免费 | 亚洲欧美精品suv | 福利视频一二区 | 色屁屁ts人妖系列二区 | 毛片在线视频观看 | 国产成人精品一区二区三区在线 | 天天插天天 | 色中色在线视频 | 国产成人在线观看免费 | 日本黄页网站免费大全 | 69热在线观看 | 亚洲男人的天堂在线 | 高清无打码 | 美女脱了裤子让男人桶 | 啪啪天堂 | 综合伊人 | 精品丰满人妻无套内射 | 亚洲综合p | 黑巨茎大战欧美白妞 | 精品人妻少妇AV无码专区 | jizzjizz中国精品麻豆 | 国产精品久久久久久久久久免费看 | 欧美破处女| 成人高清网站 | 午夜肉伦伦影院 | 免费观看日韩毛片 | 麻豆蜜桃在线观看 | 国产精品久久久免费视频 | 欧美成年人网站 | 亚洲乱熟女一区二区三区小说 | 人人妻人人爽一区二区三区 | 国产午夜毛片 | 中文字幕人妻一区二 | 在线观看免费毛片 | 免费污片软件 | 欧美大黄视频 | 日韩理论片 | 国产色播 | 国产高潮又爽又无遮挡又免费 | 成人美女毛片 | 欧美成人做爰猛烈床戏 | 国产午夜在线观看 |