国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

whistle--跨平臺(tái)網(wǎng)絡(luò)抓包調(diào)試工具

CrazyCodes / 1983人閱讀

摘要:跨平臺(tái)網(wǎng)絡(luò)抓包調(diào)試工具簡(jiǎn)介是一款跨平臺(tái)的網(wǎng)絡(luò)抓包調(diào)試工具,基于開發(fā)。支持抓包,重放,替換,修改等方式來(lái)調(diào)試請(qǐng)求,也可以作為普通的代理。

whistle--跨平臺(tái)網(wǎng)絡(luò)抓包調(diào)試工具

[TOC]

簡(jiǎn)介

whistle是一款跨平臺(tái)的網(wǎng)絡(luò)抓包調(diào)試工具,基于node開發(fā)。支持抓包,重放,替換,修改等方式來(lái)調(diào)試http(s),WebSocket請(qǐng)求,也可以作為普通的http代理。其功能和常用的fiddler(windows),Charles(Mac)工具功能相同,不過(guò)對(duì)于開發(fā)者更加友好,操作和調(diào)試更加方便,還支持node模塊的插件。

快速上手 安裝
npm install -g whistle // 全局安裝whistle
啟動(dòng)
w2 start  //啟動(dòng)whistle
配置代理 (推薦使用瀏覽器插件)
127.0.0.1:8899
配置規(guī)則

瀏覽器訪問(wèn)http://local.whistlejs.com 打開whistle界面,在rule里面配置:

jd.com  127.0.0.1
taobao.com  127.0.0.1
tmall.com 127.0.0.1

OK,就是這么簡(jiǎn)單

安裝使用

首先需要安裝好node,官方推薦使用最新的LTS版本node

安裝whistle

node環(huán)境配置成功后開始安裝whistle,非root用戶加sudo

npm install -g whistle

安裝完成后,執(zhí)行命令whistle help或者w2 help可以查看whistle的幫助信息,有輸出則證明已安裝成功

$ w2 help
Usage: whistle  [options]

Commands:

    run       Start a front service
    start     Start a background service
    stop      Stop current background service
    restart   Restart current background service
    help      Display help information
    
Options:

    -h, --help                                      output usage information
    -D, --baseDir [baseDir]                         the base dir of config data
    -A, --ATS                                       generate Root CA for iOS ATS (Node >= 6 is required)
    -z, --certDir [directory]                       custom certificate path
    -l, --localUIHost [hostname]                    local ui host (local.whistlejs.com by default)
    -n, --username [username]                       the username of whistle
    -w, --password [password]                       the password of whistle
    -N, --guestName [username]                      the guest name
    -W, --guestPassword [password]                  the guest password
    -s, --sockets [number]                          max sockets (60 by default)
    -S, --storage [newStorageDir]                   the new local storage directory
    -C, --copy [storageDir]                         copy storageDir to newStorageDir
    -c, --dnsCache [time]                           the cache time of DNS (30000ms by default)
    -H, --host [host]                               whistle listening host(:: or 0.0.0.0 by default)
    -p, --port [port]                               whistle listening port (8899 by default)
    -P, --uiport [uiport]                           whistle ui port (8900 by default)
    -m, --middlewares [script path or module name]  express middlewares path (as: xx,yy/zz.js)
    -M, --mode [mode]                               the whistle mode (as: pureProxy|debug|multiEnv)
    -u, --uipath [script path]                      web ui plugin path
    -t, --timeout [ms]                              request timeout (66000 ms by default)
    -e, --extra [extraData]                         extra data for plugin
    -f, --secureFilter [secureFilter]               the script path of secure filter
    -R, --reqCacheSize [reqCacheSize]               the cache size of request data (512 by default)
    -F, --frameCacheSize [frameCacheSize]           the cache size of socket frames (512 by default)
    -V, --version                                   output the version number
啟動(dòng)whistle

新版本的whistle支持三種等價(jià)命令whistle,w2,wproxy

啟動(dòng)whistle

w2 start

重啟whistle

w2 stop

停止whistle

w2 stop

啟動(dòng)調(diào)試模式(啟動(dòng)了一個(gè)前臺(tái)服務(wù),主要用于查看whistle的異常及插件開發(fā))

w2 run
配置代理

代理服務(wù)器,如果在本地則為127.0.0.1,如果部署在遠(yuǎn)程服務(wù)器或者虛擬機(jī)上,就改成對(duì)應(yīng)IP即可。
默認(rèn)端口為8899,如果端口被占用,要修改端口號(hào),可以通過(guò) -p來(lái)指定新的端口號(hào)

代理方式

直接配置系統(tǒng)代理

Windows

Mac

安裝瀏覽器代理插件,推薦方式

Chrome插件:SwitchyOmega

Firefox插件: ProxySelector

移動(dòng)端需要配置當(dāng)前WIFI的代理

如何使用

通過(guò)w2 start啟動(dòng)后,訪問(wèn)http://local.whistlejs.com 即可打開whistle界面。

所有通過(guò)whistle的篡改操作,都可以用過(guò)下面的配置方式實(shí)現(xiàn)

pattern operatorURL

pattern為匹配請(qǐng)求URL,支持域名,路徑,正則,通配符等多種方式

operatorURI為對(duì)應(yīng)的操作,由協(xié)議和值組成(operatorURL = opProtocol://opValue)
支持的協(xié)議類型:協(xié)議列表

PS; {value} 則對(duì)應(yīng)工具欄Values下的文件

兩邊結(jié)合一下:

# 域名匹配IP
 www.example.com  127.0.0.1
 # 帶端口的域名匹配
 www.example.com:6666  127.0.0.1
 # 帶協(xié)議的域名,支持:http、https、ws、wss、tunnel
 http://www.example.com  127.0.0.1

 # 路徑匹配,同樣支持帶協(xié)議、端口
 www.example.com/test  http://127.0.0.1:9090
 https:/www.exapmle.com/test http://127.0.0.1:9090
 https:/www.exapmle.com:6666/test  http://127.0.0.1:9090

 # 正則匹配
 /^https?://www.example.com/test/(.*)/ referer://http://www.test.com/$1

 # 通配符匹配
 ^www.example.com/test/*** referer://http://www.test.com/$1
功能詳解

whistle功能概括:

代理設(shè)置
設(shè)置http代理
pattern proxy://ip:port
# 加用戶名密碼
pattern proxy://username:password@ip:port
www.jd.com proxy://test:123@127.0.0.1:8888
設(shè)置socks代理
pattern socks://ip:port
# 加用戶名密碼
pattern socks://username:password@ip:port

www.jd.com socks://test:123@127.0.0.1:8888
設(shè)置pac代理
pattern pac://filepath

/./ pac://https://raw.githubusercontent.com/imweb/node-pac/master/test/scripts/normal.pac
設(shè)置反向代理

區(qū)別于正向代理,具體可參考 正向代理與反向代理
whistle作為反向代理只支持http訪問(wèn),啟動(dòng)whistle時(shí)設(shè)置監(jiān)聽的端口為6060:

w2 start -p 6060
#或
w2 restart -p 6060

非root用戶需要加sudo w2 start -p 6060。 ? 根據(jù)域名、或路徑、或正則表達(dá)式配置帶端口的host:

localhost:6060/aa host://10.8.43.82:8080
localhost:6060/bb host://10.8.43.82:8081

這樣訪問(wèn)localhost:6060的請(qǐng)求會(huì)自動(dòng)轉(zhuǎn)到8080或8181端口,實(shí)現(xiàn)無(wú)端口訪問(wèn)。 PS:如果要用IP訪問(wèn),可以采用 http://127.0.0.1/-/xxx 或 http://127.0.0.1/_/xxx,whistle會(huì)自動(dòng)轉(zhuǎn)成 http://127.0.0.1/xxx

移動(dòng)端調(diào)試

移動(dòng)端調(diào)試的時(shí)候需要在同一個(gè)局域網(wǎng)內(nèi),涉及到https的連接需要開啟https攔截。

開啟https攔截

如果要攔截https和websockets請(qǐng)求,必須安裝根證書和開啟https攔截。

在工具欄=>https 下載 RootCA, 并勾選 intercept HTTPS CONNECTs 選項(xiàng)

安裝CA證書

具體參見(jiàn):安裝根證書

設(shè)置手機(jī)代理

設(shè)置 => 無(wú)線局域網(wǎng) => 找到對(duì)應(yīng)局域網(wǎng)點(diǎn)擊感嘆號(hào) => HTTP代理 配置代理 => 選擇手動(dòng) => 填寫whistle服務(wù)的IP和端口號(hào)

PS: 如果配置完代理,手機(jī)無(wú)法訪問(wèn),可能是whistle所在的電腦防火墻限制了遠(yuǎn)程訪問(wèn)whistle的端口,關(guān)閉防火墻或者設(shè)置白名單: http://jingyan.baidu.com/arti...

訪問(wèn)界面

whistle集成了weinre的功能,只需要簡(jiǎn)單配置pattern weinre://id即可使用。

然后點(diǎn)擊工具欄的weinre,選擇對(duì)應(yīng)的ID打開weinre界面

移動(dòng)調(diào)試

相對(duì)于PC調(diào)試,移動(dòng)端調(diào)試會(huì)常遇到以下問(wèn)題

無(wú)法通過(guò)console輸出錯(cuò)誤,也無(wú)法看到頁(yè)面的js報(bào)錯(cuò)

無(wú)法查看和修改頁(yè)面的DOM和樣式

無(wú)法debug

1.來(lái)捕獲頁(yè)面的錯(cuò)誤和log

whistle可以通過(guò)類似console的log平臺(tái),來(lái)捕獲頁(yè)面的錯(cuò)誤和log

www.jd.com log://
# 如果你想同時(shí)注入js腳本,可以用下面一種方式
# 在mac或linux中
www.jd.com log:////Users/willhu/work/whistle-test/log-test.js
# 在windows中
www.jd.com log://D:xxx	est.js
# 直接從whistle的Values配置的key-value里面獲取腳本
www.jd.com log://{log-test.js}

2.查看、修改頁(yè)面的DOM和樣式

集成了weinre的功能,用戶只需通過(guò)簡(jiǎn)單配置(pattern weinre://id)即可使用即可通過(guò)在pc上通過(guò)weinre修改網(wǎng)頁(yè)的DOM結(jié)構(gòu)及其樣式,這里的ID只是一個(gè)分類,避免一個(gè)weinre調(diào)試頁(yè)面出現(xiàn)太多鏈接

m.jd.com weinre://test-weinre

3. 暫不支持debug功能,可以通過(guò)log來(lái)替代

推薦騰訊的vConsole插件

m.jd.com js:///Users/willhu/work/whistle-test/vconsole.min.js

vConsole: https://github.com/Tencent/vC...

demo: vConsole

文件導(dǎo)入導(dǎo)出

在network中右鍵點(diǎn)擊請(qǐng)求列表,可以將請(qǐng)求的數(shù)據(jù)導(dǎo)出到txt.saz文件,也可導(dǎo)入txt.saz.har文件。

抓包重放
查看請(qǐng)求響應(yīng)數(shù)據(jù)

在network中可以看到每條請(qǐng)求的詳細(xì)情況。

重放請(qǐng)求

打開network ==> 選中請(qǐng)求 ==> 右鍵選擇replay

重構(gòu)請(qǐng)求

可以自定義請(qǐng)求的URL、請(qǐng)求方法、請(qǐng)求頭,請(qǐng)求內(nèi)容

請(qǐng)求和響應(yīng)修改
修改請(qǐng)求URL或者參數(shù)

設(shè)置靜態(tài)規(guī)則列表

pattern reqScript://filepath
www.jd.com reqScript:///Users/willhu/work/whistle-test/rulelist.txt

rulelist.txt如果文件的第一行為規(guī)則的注釋,即#開頭則任務(wù)filepath指定的是規(guī)則列表,會(huì)加載該列表,并進(jìn)行二次匹配獲取規(guī)則

# rules
pattern1 operatorURI1
pattern2 operatorURI2
patternN operatorURIN

通過(guò)腳本設(shè)置規(guī)則列表

www.jd.com reqScript://{rulelist.js}
設(shè)置服務(wù)器IP(host)

支持兩種配置方式,這樣就不用查找本機(jī)的host文件了

ip pattern
或者
pattern host://ip

例子

# 傳統(tǒng)hosts配置
127.0.0.1 www.example.com # 等價(jià)于: www.example.com  127.0.0.1
127.0.0.1 a.example.com b.example.com c.example.com

# 支持帶端口
127.0.0.1:8080 www.example.com # 等價(jià)于: www.example.com  127.0.0.1:8080
127.0.0.1:8080 a.example.com b.example.com c.example.com

# 支持通過(guò)域名獲取host,類似DNS的cname
host://www.qq.com:8080 www.example.com # 等價(jià)于: www.example.com  host://www.qq.com:8080
host://www.qq.com:8080 a.example.com b.example.com c.example.com

# 支持通過(guò)正則表達(dá)式匹配
127.0.0.1:8080 /example.com/i # 等價(jià)于: /example.com/i  127.0.0.1:8080
127.0.0.1:8080 /example.com/ /test.com/

# 支持路徑匹配
127.0.0.1:8080 example.com/test # 等價(jià)于: example.com/test 127.0.0.1:8080
127.0.0.1:8080 http://example.com:5555/index.html www.example.com:6666 https://www.test.com/test

# 支持精確匹配
127.0.0.1:8080 $example.com/test # 等價(jià)于: $example.com/test 127.0.0.1:8080
127.0.0.1:8080 $http://example.com:5555/index.html $www.example.com:6666 $https://www.test.com/test
替換請(qǐng)求
https://jd.com https://baidu.com/
修改請(qǐng)求方法

配置方式如下:

pattern method://newMethod
jd.com method://post
修改請(qǐng)求頭

修改請(qǐng)求頭,配置方式:

pattern reqHeaders://filepath
jd.com reqHeaders://{reqHeaders.json}
修改請(qǐng)求內(nèi)容

把指定的內(nèi)容替換請(qǐng)求內(nèi)容(GET等請(qǐng)求沒(méi)有內(nèi)容沒(méi)有替換一說(shuō)),配置方式

pattern reqBody://filepath
www.jd.com method://post reqBody://{test-reqBody.html}
注入或替換內(nèi)容

把指定的內(nèi)容添加到請(qǐng)求內(nèi)容前面(GET等請(qǐng)求沒(méi)有內(nèi)容無(wú)法添加),配置方式:

pattern reqPrepend://filepath
限速或者延遲請(qǐng)求

延遲請(qǐng)求

pattern reqDelay://timeMS
www.jd.com reqDelay://3000

設(shè)置速度

pattern reqSpeed://kbs
www.jd.com reqSpeed://3
修改相應(yīng)狀態(tài)碼

設(shè)置響應(yīng)狀態(tài)碼(狀態(tài)碼范圍100~999),請(qǐng)求會(huì)直接根據(jù)設(shè)置的狀態(tài)碼返回,不會(huì)請(qǐng)求到線上,配置方式:

pattern statusCode://code
jd.com statusCode://404
修改響應(yīng)頭

方式同請(qǐng)求頭

修改響應(yīng)內(nèi)容

把指定的內(nèi)容替換響應(yīng)內(nèi)容(304等響應(yīng)沒(méi)有內(nèi)容無(wú)法替換),配置方式:

pattern resBody://filepath
st.360buyimg.com/m/css/2014/layout/layout2015.css resBody://{myAppend.css}
注入或者替換內(nèi)容

把指定的內(nèi)容追加到響應(yīng)內(nèi)容后面(304等響應(yīng)沒(méi)有內(nèi)容無(wú)法追加),配置方式:

pattern resAppend://filepath
st.360buyimg.com/m/css/2014/layout/layout2015.css resAppend://{myAppend.css}
限制速度或延遲響應(yīng)

延遲響應(yīng)

pattern resDelay://timeMS
www.jd.com resDelay://3000

設(shè)置速度

pattern resSpeed://kbs
www.jd.com resSpeed://3
插件擴(kuò)展

有些很少用的功能,及一些跟業(yè)務(wù)相關(guān)的功能,考慮到會(huì)導(dǎo)致安裝過(guò)程比較長(zhǎng)或者占用內(nèi)存空間或者適應(yīng)范圍比較小,whistle沒(méi)有把這些功能加進(jìn)去,但提供了插件的方式擴(kuò)展這些功能。whistle本身就是一個(gè)Node模塊,只需要按照whistle.xxx的形式命名即可。

編寫whistle插件:如何編寫插件

官方提供的插件列表:官方插件列表

socket和websocket

利用whistle調(diào)試socket和webscoket

測(cè)試用的文件:whistle-test-files

測(cè)試用的rules: rules

整理的有些凌亂,如有不對(duì)之處,請(qǐng)指正,謝謝。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/95046.html

相關(guān)文章

  • whistle真機(jī)調(diào)試

    摘要:所有域名下的請(qǐng)求,都會(huì)根據(jù)響應(yīng)類型,將處理好的文本注入到響應(yīng)內(nèi)容里面,如是請(qǐng)求,和會(huì)分別自動(dòng)加上和標(biāo)簽后追加到內(nèi)容后面。查看請(qǐng)求響應(yīng)的詳細(xì)信息及請(qǐng)求列表的,還有請(qǐng)求匹配到的規(guī)則用來(lái)重發(fā)請(qǐng)求構(gòu)造請(qǐng)求,可以自定義請(qǐng)求的請(qǐng)求方法請(qǐng)求頭請(qǐng)求內(nèi)容。 系列文章 真機(jī)聯(lián)調(diào)常用方式和強(qiáng)大的Fiddlerwhistle真機(jī)調(diào)試 前言 之前發(fā)表過(guò)一篇文件關(guān)于真機(jī)調(diào)試的幾種方式,但是都各自有些不便的地方,最...

    Taonce 評(píng)論0 收藏0
  • whislte抓包

    摘要:作用顯示設(shè)備訪問(wèn)信息,設(shè)備可以訪問(wèn)抓包機(jī)器本地的項(xiàng)目一般在設(shè)備自帶瀏覽器中訪問(wèn)本地項(xiàng)目對(duì)調(diào)試界面有好處安裝全局安裝記得查看命令啟動(dòng)項(xiàng)目查看常用啟動(dòng)項(xiàng)目后根據(jù)給的地址在網(wǎng)頁(yè)打開界面通常為了防止避免設(shè)備默認(rèn)訪問(wèn)自身,一般給抓包機(jī)器設(shè)置代理域名 作用:GUI顯示設(shè)備訪問(wèn)信息,設(shè)備可以訪問(wèn)抓包機(jī)器本地的項(xiàng)目tips:一般在設(shè)備自帶瀏覽器中訪問(wèn)本地項(xiàng)目對(duì)調(diào)試界面有好處 1.安裝:sudo npm...

    raledong 評(píng)論0 收藏0
  • 99%的程序都沒(méi)有考慮的網(wǎng)絡(luò)異常

    摘要:本文由云社區(qū)發(fā)表絕大多數(shù)程序只考慮了接口正常工作的場(chǎng)景,而用戶在使用我們的產(chǎn)品時(shí)遇到的各類異常,全都丟在看似的中。在面板,還可以對(duì)請(qǐng)求進(jìn)行暫停延遲等網(wǎng)絡(luò)異常的模擬。小程序?qū)崿F(xiàn)最后,留一道思考題。 本文由云+社區(qū)發(fā)表 絕大多數(shù)程序只考慮了接口正常工作的場(chǎng)景,而用戶在使用我們的產(chǎn)品時(shí)遇到的各類異常,全都丟在看似 ok 的 try catch 中。如果沒(méi)有做好異常的兼容和兜底處理,會(huì)極大的影...

    HollisChuang 評(píng)論0 收藏0
  • 關(guān)于防CSRF你需要了解的另一種方法

    摘要:本文給大家介紹另一種防的方法。第三方請(qǐng)求開始前我們先了解一下第三方請(qǐng)求,什么樣的請(qǐng)求被稱為第三方請(qǐng)求簡(jiǎn)單來(lái)說(shuō)就是在一個(gè)網(wǎng)頁(yè)上發(fā)起一個(gè)不同源的請(qǐng)求,那么我們可以稱為第三方請(qǐng)求。這一切都不需要做生命周期的管理,也不用擔(dān)心會(huì)丟失或被中途被篡改。 前言 網(wǎng)站通常會(huì)使用 cookie 來(lái)記錄用戶的登錄狀態(tài),但并非安全,因?yàn)?cookie 被允許在第三方網(wǎng)站(也不僅限于第三方)發(fā)起的請(qǐng)求中攜帶,因...

    willin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<