使用fiddler調試本地js,fiddler配置及使用教程

本文目錄一覽:

Fiddler中創建AutoResponder規則之替換圖片、JS文件

一.使用Fiddler進行文件替換

Fiddler 的AutoResponder tab允許你從本地返迴文件,而不用將http request 發送到伺服器上。

1.圖片替換

a. 打開百度圖片首頁:image.baidu.com;

b. 打開Fiddler 找到其中一張圖片的會話: (該圖片對應下圖1),把這個會話拖到AutoResponer Tab下(圖2)

如何設置fiddler對nodejs進行抓包

首先要確保手機和安裝有Fiddler的計算機處在同一個區域網中,可以使用路由器,或者使用筆記本發送熱點給手機使用。在這裡本人是使用手機USB共享功能讓筆記本聯網的。進入cmd輸入ipconfig/all。查看IPv4地址,如下圖。下面設置代理需要用到該地址。

打開Fiddler。在Tools中選擇【Fiddler Options】。選擇選項卡【HTTPS】在apture HTTPS CONNECTs前打鉤。

選擇選項卡Connections,按下圖鉤選相應的項。注意到Fiddler listens on port:8888。這是Fiddler默認的監聽地址。也就是我們在設置代理時使用的埠號。一般保持不變就好。

下載證書。可以在電腦中輸入本機的回傳地址,埠號是8888如下圖所示,點擊最下面的【FiddlerRoot certificate】即可下載,發送到手機安裝證書,具體證書的安裝方法自己百度。或者在手機瀏覽器中輸入第一步得到的IPv4地址:8888也行。

手機端的配置。手機進入wifi配置界面,如下圖。這裡的主機名就是第一步的IPv4地址。埠號為8888。前面已經多次提到。配置成功後點擊【確定】。然後斷開wifi,關閉Fiddler。重新連接wifi在打開Fiddler。

經過以上的配置後,就可以用Fiddler監控到手機的上網行為了。以下是在手機UC中打開sina的捕獲圖。可以看到有很多與其他站點的通訊,可以使用過濾或者關閉一些後台程序來凈化。

Fiddler抓包入門

抓包使用場景:

1、用手機APP或瀏覽器訪問一個頁面,查看請求的結果是否正確,請求的參數是否正確

2、在不修改任何環境的情況下,修改返回的結果,即通常所說的mock

3、複雜場景:

比如,同一個域名下的請求,/img/xxx的資源發送到ServerA上,請求/api/xxx資源發送到ServerB上

我們使用瀏覽器或者客戶端軟體都要與外界進行通信,就必然會有數據的發送和接收,有時候需要對這些傳遞的數據進行分析,因此需要截獲這些傳遞的數據。

其中對這些數據進行截獲、重發、編輯、轉存的過程叫做 抓包 。

本地應用與伺服器之間所有的Request 和Response都將經過Fiddler,由Fiddler進行轉發,此時Fiddler以代理伺服器的方式存在。

由於所有的網路數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現網路數據的抓包,可以詳細地對HTTP請求進行分析,並模擬對應的HTTP請求。

1、本地化的工具,是一個使用本地 127.0.0.1:8888 的 HTTP 代理

(免費的web調試代理工具,支持任何瀏覽器、系統或平台)

啟動Fiddler後,通過瀏覽器訪問:

(1)任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler

(2)工具打開後,就自動設置了IE瀏覽器的代理,工具關閉後,IE的設置也將被還原

2、Fiddler本身對http協議支持較好,且操作簡單容易上手

3、具有抓包和分析功能,省去了安裝其他工具的必要

4、工具本身功能強大

(1)劫包:模擬介面不給前端返回數據,看前端怎麼處理,如果沒有工具,就只能採用斷網、停用伺服器

(2)篡改數據:假設沒法去模擬前端對於介面返回數據很長時,怎麼去展示,換行?截取?小屏幕上頁面扭曲?如果通過篡改數據,就能直觀的把數據返回給前端展示,很明顯的看到前端數據是什麼樣的,就不需要從底層改數據

(3)模擬低速、弱網環境等,有些元素載入不出來會導致樣式問題

網路爬蟲是自動爬取網頁的程序,在爬取的過程中必然會涉及客戶端與服務端之間的通信,也需要發送一些HTTP請求,並接受伺服器返回的結果。

有些網址變化肉眼是看不出規律的,這時配合抓包軟體會變得較容易。

案例:網頁底部「閱讀更多」

在瀏覽一些圖片網站時,瀏覽到最下面的時候會出現一個「閱讀更多」的字樣,此時單擊「閱讀更多」頁面上顯示更多內容,載入出來的內容跟原來的內容是在同一個網頁上展示的。我們直接看網址的變化是看不出任何規律的,便無法分析該請求是如何實現的,無法通過程序構造出該請求。

此時可以通過Fiddler 進行抓包,對這些數據進行分析,查看request headers 發現是通過Get請求來實現的,總共有3個參數:order_by、page、per_page

通過分析就可以知道頁面上只顯示20篇文章,之後就需要通過 閱讀更多 進行載入

每點擊一次 閱讀更多 ,相當於在修改page值

知道實現規律後,就可以通過編寫程序構造出對應的請求,並由程序自動地實現這些請求的發送。

假如修改page為3、4、5,在新窗口進行訪問,與頁面閱讀更多進行比對

Fiddler 默認是抓 http請求的,對於pc上的 https請求,會提示網頁不安全,這時候需要在瀏覽器上安裝證書

Fiddler可以通過偽造CA證書來欺騙瀏覽器和伺服器,大概原理就是在瀏覽器面前Fiddler偽裝成一個HTTPS伺服器,而在真正的HTTPS伺服器面前Fiddler又裝成瀏覽器,從而實現解密HTTPS數據包的目的。

1、檢查Fiddler設置

2、導出證書

3、導入到Firefox瀏覽器

測試下結果,打開百度網頁,成功了,接下來就可以進行抓包了

1、cls (或 clear) 清屏命令

清空會話列表中的所有會話

2、select 篩選某一類型的會話命令

如 select html ,輸入命令後敲回車鍵,在會話列表中所有html類型的會話都已被選中

3、? 查找網址中包含某些字元的會話信息

如 ?jianshu 可以查找出網址中包含「jianshu」字元串的會話信息,跟其他會話信息用不同顏色區分顯示

4、help 幫助命令

打開官方的使用頁面介紹,所有的命令都會列出來

5、bpu、bpafter 斷點命令

6、dump 快速保存

以 鐵路網的貨物跟蹤 為例

頁面有車號、貨票號、驗證碼三個欄位,通過輸入不同格式的值來觀察頁面提示與 Fiddler 抓包返回的 json值

1、先輸入格式正確的值,點查詢

2、修改貨票號的位數,點查詢

1、兩次抓包的介面是一樣嗎?第一個是post,第二個是get,不是同一個

2、第二個請求沒有發出去,應該是前端直接對數值的位數做了校驗的,這個時候就不會調介面,所以就沒有數據顯示了

如想更深入的使用Fiddler,請查看 進階篇

如何使用Fiddler調試線上JS代碼

g.) 今天分享一下如何用Fiddler來修改並調試線上的JS代碼. 以博客園首頁為例子,用我本地的一個js文件來替換它的一個js. 查看首頁源碼發現一個js,就拿它開刷了. 打開fiddler,捕獲博客園的首頁請求. 找到「aggsite.js」的請求. 這裡有個技巧,可以通過 「select」命令來篩選js請求. 在下面的命令框輸入「select script」回車即可. 如下圖. 接著把這個請求拖動到「AutoResponder」面板. 拖動之前記得先勾

fiddler中利用AutoResponder【重定向功能】 進行調試

一、將伺服器的返回數據(即原資源)重定向到本地的文件進行調試

1、打開fiddler,打開瀏覽器輸入(已百度為例),再回到fiddler進行設置

2、按照截圖所示,分別將4個選購全部勾選,勾選完成後,將待重定向的網址直接拖到右方【手動填寫完整地址/正則表達式進行模糊匹配的地址】即可 

3、填寫要替換的內容,下拉框有很多選項可以選擇, 比如201、302、404,502等status code 

注,我的一開始是404_Plain.dat

4、設置完成之後,刷新百度網頁,請求回來的數據已經是替換後的內容了 

註:想取消的話,直接將第1步中勾選的Enable rules去掉即可

二、利用AutoResponder【重定向功能】修改返回response的數據

1、在fiddler中打開百度,選擇SyntaxView的內容進行複製,保存到本機上,以baidu.html格式進行保存

2、點擊AutoResponder,把剛才的網址拖到右邊

3、第一個下拉框選擇Header:Accept=html

    第二個下拉框選擇你剛才保存baidu.html的路徑

4、勾選Enable rules之類的四個,然後點擊保存

5、再訪問百度

註:想取消的話,直接將第1步中勾選的Enable rules去掉即可

Fiddler 使用10問10答(一)

背景:下面這些問題都是我了解使用Fiddler階段遇到的初級問題,解決方案或許不確切,這裡僅供參考,後續持續變更。

1.打開Fiddler後,打開Chrome瀏覽器,輸入網址提示「您的連接不是私密連接」

解決方法:取消HTTPS下的Decrypt Https Traffic的勾選,如圖,再次打開網站後提示會消失

2.為什麼要設置斷點及設置斷點原理

*首先Fildder工作原理:在服務端和客戶端之間充當代理伺服器

*斷點:簡單舉個例子,當需要修改服務端在客戶端顯示內容,或者需要修改客戶端密碼都可以設置斷點。

3.inspectors下webforms表格內容點擊後無反應,無法修改內容

試了好久才發現使用bpu xx命令後,設置斷點未成功,點擊Rules-Automatic Breakpoins-Before Requests設置所有斷點,一般設置斷點成功後,會有紅色圖標出現,如下圖

4.輸入bpu 命令後,斷點設置/取消失敗,無紅色圖標出現

   嘗試瀏覽器使用IE試一試

5.filder 如何停止自動抓包

點擊左下角的Capturing按鈕

6.如何清除抓包記錄

在上圖黑色文本框中輸入cls

7.如何查詢特定網站記錄

打開Fillder,鍵盤同時按下【Ctrl】+【F】鍵,在搜索框輸入網站網址,點擊確定後(默認黃色顯示)指定網站記錄

8.Before request和After response不同

*Before Request請求調試、After Response 回發調試

*執行請求調試步驟:Before Request-修改數據-Run to Completion

  執行回發調試步驟:Before Request-Break on Response-修改數據-Run to Completion

9.Break on Response和Run to Completion區別

*Break on Response攔截伺服器會發數據、Run to Completion執行修改過的數據或是繼續執行

*Break on Response當涉及到修改伺服器返回數據時需要點擊,之後再點擊Run to Completion繼續運行;當涉及到修改請求的數據時,直接修改完成後點擊Run to Completion即可

10.執行請求調試步驟:修改表單內容成功後點擊Run to Completion,頁面無反應(一直處於刷新狀態)(例如登錄頁面輸入正確的用戶名、密碼後會成功登錄)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/235625.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 11:56
下一篇 2024-12-12 11:56

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29

發表回復

登錄後才能評論