小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

無標題

 黑扭 2021-04-11

Fiddler在使用的過程中經常會碰到一些問題。這章補充一些Fiddler的用法。

2.1 Fiddler必須要做的3個設置

Fiddler需要進行3個設置,這樣做使用Fiddler的過程才能順暢。

2.1.1 第1個設置:在Fiddler中安裝證書

大部分網站都是使用HTTPS協(xié)議,所以必須安裝證書,這樣才能捕獲HTTPS,如圖2-1所示。

如果證書沒有安裝成功,那么Fiddler只能抓到HTTP請求,抓不到HTTPS請求,如圖2-2所示。所以一定要想辦法把證書安裝好。

圖2-1 Fiddler安裝證書

圖2-2 沒有抓到HTTPS

2.1.2 第2個設置:自動解壓HTTP響應

在Fiddler工具欄中選中“Decode”按鈕,如圖2-3所示。這樣就會自動解壓HTTP響應,否則我們看到的HTTP響應是亂碼。

圖2-3 Fiddler選中Decode按鈕

2.1.3 第3個設置:隱藏“Tunner to”請求

可以在Fiddler中隱藏“CONNECT Tunnels”請求,如圖2-4所示。隱藏的方法是選擇菜單欄中的Rules→Hide CONNECTs。這樣Fiddler就不會捕獲大量無用的握手驗證請求,如圖2-5所示。這些“Tunnel to”的請求對我們沒什么用處。因為我們平常根本不關心HTTPS是如何建立連接的。我們抓包是為了看HTTP請求和響應的數據內容,抓HTTPS也是看數據內容,而不關心HTTPS的通信是怎么建立的。

圖2-4 在Fiddler中選中Hide CONNECTs

圖2-5 Fiddler中的握手驗證請求

2.2 不允許抓包

軟件開發(fā)商并不希望自己的軟件被人抓包,抓包意味著自己的接口全部被人看得一清二楚,存在很多安全隱患。有很多App采取各種措施來防止被抓包。

2.2.1 某些App抓不到包

某些App為了不被抓包,直接會在代碼里設置不允許使用代理,這樣Fiddler就抓不到了。

有些App能抓包,說明Fiddler的設置是正確的。某些App不能抓包,原因有很多,如下。

  • 可能是Fiddler證書原因,解決方法是需要用證書插件來重新制作一個證書,然后重新配置。
  • 這個App的開發(fā)者進行了特殊設置,不讓抓包。

2.2.2 HTTP請求和響應全部加密

圖2-6是一個查違章的App的抓包內容,可以看到這個App可以被抓包,但是其HTTP請求和HTTP響應全部被加密了,安全性很高。

圖2-6 查違章App的接口全部被加密

2.2.3 不讓抓包

銀行的App對安全性要求很高,所以一般不允許抓包。某款銀行App在用Fiddler抓包的時候,App會提示網絡錯誤,不讓抓包,如圖2-7所示。

圖2-7 某銀行App不讓抓包

2.3 Fiddler抓不到包

在使用Fiddler的過程中,有時候會發(fā)現Fiddler抓不到包。下面介紹如何解決抓包失敗的問題。

2.3.1 Fiddler的抓包開關

Fiddler有一個抓包的開關。打開狀態(tài)欄的時候,狀態(tài)欄的最左邊有個“Capturing”圖標,如圖2-8所示。如果沒有這個圖標,當然抓不到包了。初學者很容易忘記這個開關。

圖2-8 Fiddler的抓包開關

2.3.2 瀏覽器抓不到包

Fiddler能抓包是因為它是一個代理服務器。需要抓包的程序必須把代理指向Fiddler才行。如果瀏覽器抓不到包,可能是因為瀏覽器的代理設置沒有指向Fiddler。我們可以先重啟Fiddler,然后查看瀏覽器的代理服務器設置,或者換不同的瀏覽器試試。

我們先來看一下Fiddler的抓包原理圖,如圖2-9所示。

圖2-9 瀏覽器的抓包原理

如果是某一個瀏覽器抓不到包,解決方案是換其他的瀏覽器。比如IE和Chrome都能抓到,只是Firefox抓不到包,說明Fiddler本身沒有問題,可能是Firefox的代理設置沒有指向Fiddler。

如果是所有的瀏覽器都抓不到包,這說明整個Fiddler都不工作。那么要先重啟Fiddler,再檢查下系統(tǒng)的代理設置,如圖2-10所示。

圖2-10 系統(tǒng)代理設置

設置系統(tǒng)代理的打開方式為:控制面板→Internet選項→連接→局域網設置→代理服務器。

2.3.3 能抓HTTP不能抓HTTPS

如果發(fā)現Fiddler可以抓到HTTP的請求,但是抓不到HTTPS的請求,這說明沒有安裝Fiddler的證書或者安裝Fiddler證書失敗。Fiddler可能會提示你安裝證書。解決辦法是重新安裝證書,再重啟Fiddler,如圖2-11所示。

圖2-11 重新安裝證書

重新安裝證書的操作是Options→Actions→Trust Root Certificate。

2.3.4 抓不到手機中的包

很多人會碰到這種情況:Fiddler能抓本地計算機瀏覽器的包,但是抓不到手機的包。本地計算機和手機位于同一個網絡,各種配置也正常,但是手機的包就是抓不到。

出現這樣的問題的原因是Fiddler所在的計算機和手機之間的網絡不通。即使Fiddler所在的計算機和手機連的是同一個Wi-Fi,也可能網絡不通。在同一個Wi-Fi下,網絡不一定是通的。操作系統(tǒng)上的防火墻或者其他軟件的設置都會影響網絡的通信。我們需要通過下面的步驟來檢測網絡是否是通的。

第1步:測試Fiddler能否捕獲本地計算機的瀏覽器的包,如果本地瀏覽器都不能抓包,那就說明Fiddler的配置有問題。

第2步:如果Fiddler所在的計算機的IP地址是192.168.0.100,那么Fiddler證書網站的網址是http://192.168.0.100:8888。用計算機的瀏覽器訪問Fiddler證書網站,如圖2-12所示。

圖2-12 Fiddler Echo Service網頁

第3步:在手機沒有設置代理的情況下,在手機上用瀏覽器打開Fiddler的證書網站。

如果網頁打不開,說明網絡不通,原因可能如下。

  • 手機和計算機不在同一個網絡。
  • Fiddler的允許遠程連接的設置沒有打開。
  • Windows的防火墻關閉(防火墻打開,可能會禁止8888端口對外開放)。

只有Fiddler證書網站能打開,才能說明手機和計算機的網絡是通的。再去修改手機上的代理設置,Fiddler才能對App進行抓包。

2.3.5 經過上面的設置,還是抓不到包

可以考慮換臺計算機、換個手機試試,或者換別的抓包工具試試。

2.3.6 mac OS系統(tǒng)上抓包

Fiddler是用C#開發(fā)的,目前對mac OS的支持不太友好?,F在很多人都用Mac筆記本辦公,在mac OS系統(tǒng)上抓包可以考慮用另外兩個工具:瀏覽器開發(fā)者工具和Charles。

2.3.7 Fiddler證書安裝不成功

有時候會碰到Fiddler安裝證書不成功的情況,如圖2-13所示。

圖2-13 證書安裝不成功

這種情況一般在Windows7系統(tǒng)中出現,可以試圖用下面介紹的兩種方法來解決。

方法1:從別的機器中復制一個Fiddler根證書“FiddlerRoot.cer”放到Fiddler的安裝目錄下面,然后再重新配置證書,如圖2-14所示。

圖2-14 Fiddler證書

方法2:使用Fiddler證書制作工具來重新制作證書,詳細步驟如下。

第1步:在Fiddler中刪除證書。打開Fiddler,依次打開Tools→Options,取消選中Decrypt HTTP traffic,并且在Actions中單擊“Remove Interception Certificates”,如圖2-15所示。

圖2-15 Fiddler刪除證書

第2步:卸載證書。找到Fiddler的安裝目錄,其中有個unCert.exe文件。如果沒有unCert.exe就不需要卸載,如圖2-16所示。

第3步:使用Fiddler證書制作工具來重新制作證書。下載Certificate Make插件,運行下載的文件之后會生成新的證書。

第4步:在Fiddler中重新配置證書。

圖2-16 Fiddler卸載證書

2.3.8 iOS系統(tǒng)10.3以上,手動信任證書

若iOS系統(tǒng)版本是10.3以上,那么證書可能沒有被信任,需要手動設置信任證書。依次打開設置→通用→關于本機→證書信任設置,將Fiddler證書啟用即可,如圖2-17所示。

圖2-17 iOS中啟用Fiddler證書

2.4 Fiddler包太多找不到自己想要的

Fiddler啟動后,Web Session列表就會抓到很多HTTP請求,初學者往往會比較迷茫,因為找不到自己要抓的包。下面介紹幾個方法來找到自己要抓的包。

2.4.1 停止抓包

最推薦使用這個方法。在抓包之前,先把Web Session里面抓到的數據包全部清空,然后再操作網頁。在抓到想要的包后,就暫停抓包,這個方法簡單、實用。熟練使用這個方法后,就不需要使用其他過濾的方法了。抓包開關如圖2-18所示。

圖2-18 抓包開關

2.4.2 只抓手機,不抓本地的包

在專門抓App的包的時候,Fiddler里面混雜了本地計算機和手機App的包,如果只想抓手機App的包,這時候可以選擇“…from remote clients only”,如圖2-19所示。

圖2-19 設置只抓遠程的包

2.4.3 過濾會話

Fiddler有非常強大的過濾會話的功能,假如不想看到localhost的數據包,就可以把它隱藏。過濾的設置如圖2-20所示。注意,在設置時兩個Host之間要用分號隔開。

圖2-20 用Filters選項卡隱藏localhost

注意:使用了Filters選項卡后,記得取消Filters選項卡??赡芟麓巫グ臅r候,忘記設置Filters選項卡而抓不到包。很多人犯過這個錯誤。

2.4.4 只抓特定的進程

在狀態(tài)欄中選擇Web Browsers或者Non-Browser來選擇進程,如圖2-21所示。此外,工具欄中還有個按鈕:Any Process,單擊這個按鈕把十字圖標拖曳到想要抓包的程序上面,就只會抓特定進程的包,如圖2-22所示。

圖2-21 狀態(tài)欄上按進程過濾

圖2-22 只抓特定的進程

2.4.5 觀察URL和HOST

觀察圖2-23中的URL,可知這是登錄相關的數據包。URL的命名都會是有意義的。比如登錄的接口會包含login,注銷的URL中會包含logout。

圖2-23 觀察URL

2.4.6 查看進程發(fā)包

進程是計算機中程序的一次運行活動。Fiddler的Process列對應本地Windows進程。通過這一列我們可以知道是哪個進程在發(fā)包,如圖2-24所示。

圖2-24 在Fiddler中查看進程

2.5 HTTPS是否安全

Fiddler能分析HTTPS流量是不是意味著HTTPS協(xié)議不安全?

HTTPS是安全的,Fiddler抓HTTPS的時候安裝了一個Fiddler的證書,所以Fiddler可以解密HTTPS的內容。HTTPS請求從計算機上發(fā)送到網絡后,HTTPS的內容全部是加密的。

2.6 計算機連接手機熱點抓包

在沒有Wi-Fi的情況下,我們用手機開熱點,計算機連接手機的熱點來上網,這個時候計算機上的Fiddler能否抓到手機上的包呢?答案是不能。因為手機開熱點后,采用的是GPRS手機流量上網,這個時候手機不能設置代理服務器的,如圖2-25所示。

圖2-25 WLAN熱點

如果有兩個手機,一臺計算機,那么就可以抓包了。一個手機當成熱點,另外一臺手機和計算機都使用這個熱點上網,手機的代理就可以指向計算機了。

客戶端如何抓包

如果程序是用.NET開發(fā)的,那么Fiddler可以抓到包。因為.NET程序默認會使用系統(tǒng)代理。如果程序是用別的語言開發(fā)的,只要這個程序支持用戶自定義代理,那么Fiddler也可以抓到包,比如Fiddler可以抓QQ。

如果客戶端程序不支持代理,那么Fiddler就抓不到包了。

2.7 Fiddler測試App升級

Fiddler常用于App的升級測試,我們可以利用Fiddler偽造響應來測試App升級。

2.7.1 App升級原理

App是否升級的檢查是在啟動App訪問服務器時進行的,把本地計算機上App的最新版本號與服務器端的最新版本號作對比,如果不一致就提示升級。

App升級的時候,App會發(fā)送一個HTTP請求,來問服務器有沒有最新版。如圖2-26所示,如果沒有最新版,服務器返回的HTTP響應中會說沒有更新。

圖2-26 App沒有新版本

如果有最新版,服務器返回的響應會告知有新版本,并且App端會有彈窗提示,如圖2-27和圖2-28所示。

圖2-27 App有新版本

圖2-28 App更新提示

2.7.2 App升級的測試

在實際測試中,我們一般不會去修改服務器,因為修改服務器會遇到下述問題。

  • 修改服務器的代碼,需要有很好的代碼能力,99%的人做不到。
  • 修改服務器的代碼,還需要重新部署,耗時耗力。
  • 不靈活,升級的情況有好幾種,每次修改都要重新部署。

用Fiddler來模擬升級比較簡單,如圖2-29所示。

圖2-29 Fiddler模擬

我們用Fiddler偽造一個HTTP響應就可以了??梢杂孟聰帱c的方式修改HTTP響應,或者用Fiddler中的AutoResponder。接下來以堅果云為例介紹一下升級。

2.7.3 堅果云的升級

堅果云每次啟動的時候,都會調用一個latestVersion的接口來查詢服務器,看客戶端有沒有更新的版本,如圖2-30所示。

對比HTTP響應中的版本和本地版本,如果服務器返回的版本更高,那么客戶端就會彈出對話框,提醒用戶升級App。

圖2-30 堅果云的升級

2.8 短鏈接

短鏈接就是把普通網址轉換成比較短的網址(如https:///8oVtHHyH)。在微博或者其他限制字數的應用里,短鏈接有很多好處:網址短、字符少、美觀、便于發(fā)布和傳播。

我們平常工作中寫郵件使用短鏈接也會讓郵件更加簡潔和美觀。

2.8.1 短鏈接原理解析

當我們在瀏覽器里輸入https:///8oVtHHyH時:

  • 瀏覽器會發(fā)送一個HTTP GET請求給;
  • 服務器會通過短碼8oVtHHyH獲取對應的長網址;
  • 服務器返回HTTP 301或者302的響應,響應中包含了長網址;
  • 瀏覽器會跳轉到長網址。

2.8.2 使用短鏈接

短鏈接的服務提供商有很多,比如:百度短網址http://,如圖2-31所示。

圖2-31 使用百度短網址

2.8.3 Fiddler抓包短鏈接

打開Fiddler,再打開瀏覽器,輸入網址https:///8oVtHHyH。用Fiddler抓包短鏈接如圖2-32所示。

圖2-32 Fiddler抓包短鏈接

從圖2-32中可以看到短鏈接的原理很簡單,利用HTTP協(xié)議的跳轉,用301或者302都可以。

2.9 本章小結

本章介紹了Fiddler的常用使用技巧,包括抓包設置、抓不到包的解決方法等。讀者可以對照本章排查Fiddler使用過程中遇到的問題。此外,讀者還可以了解用Fiddler測試App升級和短鏈接的概念。

本文摘自:《HTTP抓包之接口自動化測試》

本書的內容都是我多年從事接口測試的經驗總結,非常貼近我們的實際工作,能幫助大家解決實際工作中的難題。

本書的內容比較簡單,實例豐富,讀者閱讀起來會感覺比較輕松、容易上手,讀完本書不需要花費太多時間。通過本書的學習,如果讀者能夠自行開發(fā)出一個訂票工具,或者實現一個電商網站的自動下訂單操作,那么恭喜你,已經掌握了本書的所有知識。

本書的主要內容有HTTP的基礎知識;如何使用Fiddler來抓HTTP包;如何分析HTTP包;如何通過JMeter和Postman等發(fā)送HTTP包,從而實現軟件自動化測試和接口的自動化測試;如何使用抓包工具來實現安全測試和性能測試等;幾個日常生活中應用比較廣泛的綜合實例。

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多