久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

前端人必備:詳解抓包原理和抓包工具whistle的用法

前端人必備:詳解抓包原理和抓包工具whistle的用法

php零基礎(chǔ)到就業(yè)直播視頻課:進(jìn)入學(xué)習(xí)

時隔 3 年,重新接觸了移動端 h5 頁面開發(fā),上一次還是大四實(shí)習(xí)。這一次是 hybrid 開發(fā),涉及到 h5 頁面與原生 app 的交互,h5 頁面需要與原生打通登錄態(tài),以及調(diào)用原生app 的接口,比如調(diào)用原生相機(jī)進(jìn)行二維碼掃描。跟微信小程序開發(fā)不同,本地開發(fā)時微信有提供微信開發(fā)者工具,可以本地模擬調(diào)用而我這邊需要每次都打包靜態(tài)文件,上傳服務(wù)器才能調(diào)試,非常麻煩。

能不能在原生 app 加載線上 h5 時,跑本地的代碼呢?答案是可以的,通過抓包工具比如 whistle 就可以做到攔截線上頁面請求數(shù)據(jù),再響應(yīng)本地代碼,本文主要講述抓包的原理和抓包工具 whistle 使用。

1. 抓包的原理

1.1 什么是抓包?

抓包就是將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)、編輯、轉(zhuǎn)存等操作,通過抓包可以:

  • 分析網(wǎng)絡(luò)問題

  • 業(yè)務(wù)分析

  • 分析網(wǎng)絡(luò)信息流通量

  • 網(wǎng)絡(luò)大數(shù)據(jù)金融風(fēng)險控制

  • 探測企圖入侵網(wǎng)絡(luò)的攻擊

  • 探測由內(nèi)部和外部的用戶濫用網(wǎng)絡(luò)資源

  • 探測網(wǎng)絡(luò)入侵后的影響

  • 監(jiān)測鏈接互聯(lián)網(wǎng)寬頻流量

  • 監(jiān)測網(wǎng)絡(luò)使用流量(包括內(nèi)部用戶,外部用戶和系統(tǒng))

  • 監(jiān)測互聯(lián)網(wǎng)和用戶電腦的安全狀態(tài)

  • 滲透與欺騙

回顧下計(jì)算機(jī)網(wǎng)絡(luò)知識,數(shù)據(jù)在網(wǎng)絡(luò)上是以很小的的單位傳輸?shù)模瑤ㄟ^特定的稱為網(wǎng)絡(luò)驅(qū)動程序的程序進(jìn)行成型,然后通過網(wǎng)卡發(fā)送到網(wǎng)線上,通過網(wǎng)線到達(dá)目的機(jī)器,在目的機(jī)器的一端執(zhí)行相反的過程。接收端機(jī)器的以太網(wǎng)捕獲到這些幀,并告訴操作系統(tǒng)幀已到達(dá),然后對其進(jìn)行存儲。在這個傳輸和接收的過程,就可以使用抓包工具(Sniffers)進(jìn)行抓包,作為前端開發(fā)者,通常是抓取應(yīng)用層的 HTTP/HTTPS 的包。

前端人必備:詳解抓包原理和抓包工具whistle的用法

1.2 HTTP/HTTPS 抓包原理

HTTP/HTTPS 是應(yīng)用層使用的通信協(xié)議,常見的應(yīng)用層體系結(jié)構(gòu)是客戶端-服務(wù)器體系。

對運(yùn)行在不同端系統(tǒng)上的客戶端程序和服務(wù)端程序是如何互相通信的么?實(shí)際上,在操作系統(tǒng)上的術(shù)語中,進(jìn)行通信的實(shí)際上是進(jìn)程而不是程序,一個進(jìn)程可以被認(rèn)為是運(yùn)行在端系統(tǒng)中的一個程序。

在 web 應(yīng)用程序中,一個客戶瀏覽器進(jìn)程與一臺服務(wù)器進(jìn)程進(jìn)行會話交換報文。

瀏覽器進(jìn)程需要知道接收進(jìn)程的主機(jī)地址,以及定義在目的主機(jī)中的接收進(jìn)程的標(biāo)識符,也就是目的端口。

多數(shù)應(yīng)用程序由通信進(jìn)程對組成,每對中的兩個進(jìn)程互相發(fā)送報文。進(jìn)程通過一個稱為套接字的軟件接口向網(wǎng)絡(luò)發(fā)送報文和從網(wǎng)絡(luò)接收報文。

進(jìn)程可以類比一座房子,而它的套接字可以是它的門,套接字是應(yīng)用層與運(yùn)輸層之間的端口。

前端人必備:詳解抓包原理和抓包工具whistle的用法

知道了兩個進(jìn)程的通信流程,我們要怎么抓包呢?舉一個生活中的例子,小明暗戀小雯,于是他寫了一封情書,但他有點(diǎn)害羞,找了小雯的好朋友小花幫忙傳遞情書。這個時候,小花可以負(fù)責(zé)小雯與小明之間的情書傳遞,作為中間人,她可以偷偷查看他們的情書內(nèi)容。

思路就是設(shè)置一個中間人進(jìn)程負(fù)責(zé)抓包,每次目標(biāo)進(jìn)程之間的會話都先與中間人進(jìn)程通信,再進(jìn)行轉(zhuǎn)發(fā)。

前端人必備:詳解抓包原理和抓包工具whistle的用法

1.2.1 HTTP 抓包原理

在 http 標(biāo)準(zhǔn)中,沒有對通信端身份驗(yàn)證的標(biāo)準(zhǔn)。對于服務(wù)器來說,它接收的 HTTP 請求報文只要格式符合規(guī)范,就發(fā)送響應(yīng)報文。

對于客戶端來說也是如此,它無法校驗(yàn)服務(wù)器的身份,比如它連接的 http://www.jecyu.com 的主機(jī),但由于中間節(jié)點(diǎn)的存在,最終連接的可能是 http://www.jerry.com 的主機(jī)。

因此,對于 HTTP 抓包,無需做過多的處理,只需要讓中間人負(fù)責(zé)轉(zhuǎn)發(fā)客戶端和服務(wù)端的數(shù)據(jù)包。

1.2.2 HTTPS 抓包原理

HTTP 是明文傳輸,容易受到中間人攻擊,不安全。

HTTPS 語義仍然是 HTTP,只不過是在 HTTP 協(xié)議棧中 http 與 tcp 之間插入安全層 SSL/TSL。

安全層采用對稱加密的方式加密傳輸數(shù)據(jù)和非對稱加密的方式來傳輸對稱密鑰,解決 http 數(shù)據(jù)沒有加密、無法驗(yàn)證身份、數(shù)據(jù)容易纂改三個核心問題。

HTTP + 加密 + 認(rèn)證 + 完整性保護(hù) = HTTPS

其中驗(yàn)證身份問題是通過驗(yàn)證服務(wù)器的證書來實(shí)現(xiàn)的,證書是第三方組織(CA 證書簽發(fā)機(jī)構(gòu))使用數(shù)字簽名技術(shù)管理的,包括創(chuàng)建證書、存儲證書、更新證書、撤銷證書。

前端人必備:詳解抓包原理和抓包工具whistle的用法

瀏覽器連接至一個 HTTPS 網(wǎng)站,服務(wù)器發(fā)送的不僅僅只是服務(wù)器實(shí)體證書,而是一個證書鏈,但不包含根證書,根證書會被內(nèi)嵌在 Windows, Linux, macOS, Android, iOS 這些操作系統(tǒng)里。

前端人必備:詳解抓包原理和抓包工具whistle的用法

其中校驗(yàn)證書分為兩步,證書的簽發(fā)者校驗(yàn)和服務(wù)器實(shí)體證書校驗(yàn)

1、證書鏈校驗(yàn):

  • 1.1 瀏覽器從服務(wù)器實(shí)體證書的上一級證書(比如 B 證書)獲取公鑰,用來校驗(yàn)服務(wù)器實(shí)體證書的簽名(簽名是通過 CA 機(jī)構(gòu)的私鑰簽名的),校驗(yàn)成功則繼續(xù),否則證書校驗(yàn)失敗。

  • 1.2 瀏覽器從 B 證書的上一級證書(比如 C 證書)獲取公鑰,用來校驗(yàn) B 證書的簽名,

校驗(yàn)成功則繼續(xù),否則證書校驗(yàn)失敗。

  • 1.3 瀏覽器迭代校驗(yàn)每張證書的簽名,最后會找到自簽名的根證書(簽發(fā)者和使用者是同一個人),由于瀏覽器已經(jīng)集成了根證書,可以充分信任根證書的公鑰,完成最后的簽名。

2、服務(wù)器實(shí)體證書校驗(yàn):訪問的域名信息是否與證書一致、日期、證書擴(kuò)展校驗(yàn)等。

了解完證書校驗(yàn)后,我們來看看具體的 https 通信流程:

  • 首先是 tcp 的三次握手建立連接

  • 接著是非對稱加密的握手過程

  • client 發(fā)送隨機(jī)數(shù) random1 + 支持的加密算法集合

  • server 收到信息,返回選擇的一個加密算法+ 證書 (包含S_公鑰) + random2

  • client 驗(yàn)證證書有效性,并用 random1 + random2 生成 pre-master-secure,通過服務(wù)端公鑰加密發(fā)送給 server

  • server 收到 pre-master-secure,根據(jù)約定的算法使用S_私鑰pre-master-secure 解密,

  • 然后用加密算法生成 master-secure(對稱加密的密鑰),然后發(fā)送給 client

  • client 收到生成的 master-secure,對稱加密密鑰傳輸完畢

  • 最后,就可以使用 master-secure 進(jìn)行真正的數(shù)據(jù)對稱加密傳輸。

中間人想要抓包,需在 HTTPS 加密通信之前:

  • 截取客戶端發(fā)送的包含證書的報文,偽裝成服務(wù)端,把自己的證書發(fā)給客戶端,然后拿到【客戶端返回的包含對稱加密通信密鑰的報文】,生成中間人與客戶端對稱加密的密鑰。

  • 同樣偽裝成客戶端,以服務(wù)端自己的非對稱公鑰加密【客戶端返回的包含對稱加密通信密鑰的報文】發(fā)給服務(wù)端,獲得服務(wù)端生成的對稱加密密鑰。

  • 這樣一來,加密通信建立完成,而中間人拿到了通信的數(shù)據(jù)密鑰,可以查看、修改 HTTPS 的通信報文。

  • 這里客戶端與中間人通信、中間人與服務(wù)端通信,都是正常建立了 HTTPS 加密連接的。

前端人必備:詳解抓包原理和抓包工具whistle的用法

其中很重要的一步是瀏覽器的根證書校驗(yàn),CA 機(jī)構(gòu)不可能隨便給一個中間人簽發(fā)不屬于它的域名證書,也就不在客戶端的操作系統(tǒng)上了,因此只能把中間人的根證書,導(dǎo)入到客戶端的操作系統(tǒng)了,以此完成建立加密通信時對中間人證書的驗(yàn)證。

1.3 電腦如何抓手機(jī)的包

要想通過電腦端獲取手機(jī) Web 應(yīng)用的數(shù)據(jù)包,根據(jù)前面所學(xué),就需要中間人策略。

PC 端建立一個服務(wù)器中間人進(jìn)程,偽裝為 web 應(yīng)用的目標(biāo)服務(wù)器。手機(jī)端 web 應(yīng)用發(fā)送的請求數(shù)據(jù)先經(jīng)過中間人,中間人進(jìn)行攔截處理再發(fā)送給目標(biāo)服務(wù)器。反過來,目標(biāo)服務(wù)器發(fā)送的數(shù)據(jù)包先通過中間人,再由中間人響應(yīng)給瀏覽器客戶端。

這里要注意的是,無論是個人電腦PC,還是移動端手機(jī),都需要接入互聯(lián)網(wǎng)網(wǎng)絡(luò),可以相互找到對方才能建立通信。

一般對開發(fā)來說,個人電腦本地起的服務(wù)器進(jìn)程,在公網(wǎng)上是訪問不到的。一般是無線局域網(wǎng),個人電腦與手機(jī)端連接同一個路由器發(fā)出的 Wi-Fi,就可以相互通信。

前端人必備:詳解抓包原理和抓包工具whistle的用法

具體步驟:

  • 在 PC 電腦本地起一個服務(wù)器進(jìn)程,監(jiān)聽一個端口比如 8899

  • 在手機(jī)上連接同一個局域網(wǎng),配置網(wǎng)絡(luò)代理,指向 PC 端的 IP 地址和 8899 端口

  • 這樣一來,手機(jī)上所有的網(wǎng)絡(luò)通信都會被先轉(zhuǎn)發(fā)到 PC 端的 8899 端口,就可以對數(shù)據(jù)包進(jìn)行分析處理

拿訪問 youtuBe 來說,比如電腦已經(jīng)使用【服務(wù)器軟件】成功訪問,此時只要手機(jī)配置代理指向電腦 ip 地址和指定端口,手機(jī)就可以同樣訪問 youtuBe了。

2. 抓包工具 whistle

2.1 whistle 是什么

Whistle 是基于 Node 實(shí)現(xiàn)的跨平臺抓包免費(fèi)調(diào)試工具,其主要特點(diǎn):

1、完全跨平臺:支持 Mac、Windows 等桌面系統(tǒng),且支持服務(wù)端等命令行系統(tǒng)

2、功能強(qiáng)大:

  • 支持作為 HTTP、HTTPS、SOCKS 代理及反向代理

  • 支持抓包及修改 HTTP、HTTPS、HTTP2、WebSocket、TCP 請求

  • 支持重放及構(gòu)造 HTTP、HTTPS、HTTP2、WebSocket、TCP 請求

  • 支持設(shè)置上游代理、PAC 腳本、Hosts、延遲(限速)請求響應(yīng)等

  • 支持查看遠(yuǎn)程頁面的 console 日志及 DOM 節(jié)點(diǎn)

  • 支持用 Node 開發(fā)插件擴(kuò)展功能,也可以作為獨(dú)立 npm 包引用

3、操作簡單

  • 直接通過瀏覽器查看抓包、修改請求

  • 所有修改操作都可以通過配置方式實(shí)現(xiàn)(類似系統(tǒng) Hosts),并支持分組管理

  • 項(xiàng)目可以自帶代理規(guī)則并一鍵配置到本地 Whistle 代理,也可以通過定制插件簡化操作

如何快速使用 whistle

  • 先安裝 node,建議用 nvm 管理

  • 全局安裝 whistle

npm i -g whistle & w2 start

安裝后,可以在電腦上設(shè)置全局代理,代理的端口為 8899.

w2 proxy // 設(shè)置全局代理  w2 proxy off // 關(guān)閉全局代理

就可以通過瀏覽器訪問 http://127.0.0.1:8899/ 查看抓包、修改請求等。

前端人必備:詳解抓包原理和抓包工具whistle的用法

如果你不想使用全局代理,就可以安裝 SwitchyOmega 插件,按需對某些網(wǎng)站設(shè)置 whistle 代理。

  • 選擇 Whistle 代理

前端人必備:詳解抓包原理和抓包工具whistle的用法

  • 設(shè)置 Whistle 代理

前端人必備:詳解抓包原理和抓包工具whistle的用法

2.2 whistle 可以做的事情

whistle 可以做的事情很多,以下是官網(wǎng)圖:

前端人必備:詳解抓包原理和抓包工具whistle的用法

一些例子配置如下圖所示:

前端人必備:詳解抓包原理和抓包工具whistle的用法

3. whistle 實(shí)戰(zhàn)案例

3.1 原生 app 加載 PC本地代碼開發(fā)

在原生 app 上已經(jīng)通過 h5 域名加載了 web 頁面,但是本地開發(fā)時不想每次都走流水線或本地打包上傳代碼。

需要把原生 app 的請求代理到本地服務(wù)器上來,前提條件是 wifi 手機(jī)與電腦可相互訪問,也就是前面提到的電腦抓 pc 的包。

因?yàn)槲业?web 服務(wù)端是 https 應(yīng)用,因此需要下載 whistle 提供的根證書,手動導(dǎo)入到手機(jī)上。

點(diǎn)擊 HTTPS 菜單,然后使用手機(jī)掃描二維碼,使用手機(jī)瀏覽器打開即可下載,在手機(jī)證書中設(shè)置進(jìn)行導(dǎo)入并且設(shè)置信任。

前端人必備:詳解抓包原理和抓包工具whistle的用法

此時,再在手機(jī)上配置代理指向 PC 電腦的 IP和 whistle 監(jiān)聽的端口即可在電腦上截獲數(shù)據(jù)包。

我本地webpack 啟動的服務(wù)器應(yīng)用訪問地址為:xxx.xxx.xxx.xxx:8080

whistle 的配置規(guī)則:

# Rules  # 訪問首頁走本地  jecyu.com/webs/short-transport http://xxx.xxx.xxx.xxx:8080?deptCode=755DL # 首頁路徑  # 后續(xù)的請求都使用本地代碼  jecyu.com http://xxx.xxx.xxx.xxx:8080?deptCode=755DL

其中試過在原生 app 訪問本地應(yīng)用時出現(xiàn)錯誤“ webpack 會提示 invalid host header”,解決方案是在 devServer 配置添加即可:

devServer: {  allowedHosts: 'all',  }

至此,成功讓原生 app 訪問PC 端本地的開發(fā)代碼。

3.2 查看移動端的 DOM 樣式

Whistle 能夠通過內(nèi)置的 Weinre 去實(shí)現(xiàn)查看移動端的 DOM 樣式,配置規(guī)則如下

# 設(shè)置 weinre  https://juejin.cn weinre://test

手機(jī)上重新訪問 juejin.cn 網(wǎng)站,然后打開 weinre 可以看到如下,綠色表示遠(yuǎn)程連接成功。

前端人必備:詳解抓包原理和抓包工具whistle的用法

可以點(diǎn)擊 Element 查看手機(jī)上網(wǎng)頁 DOM 結(jié)構(gòu)、樣式等信息。

前端人必備:詳解抓包原理和抓包工具whistle的用法

也可以在 console 控制臺中,執(zhí)行代碼,比如 alert ,手機(jī)應(yīng)用上會顯示彈框。

前端人必備:詳解抓包原理和抓包工具whistle的用法

4. 總結(jié)

學(xué)會抓包是軟件開發(fā)人員必須掌握的調(diào)試技能,本文先介紹抓包的原理,再介紹抓包工具 whistle 的使用,whistle 非常強(qiáng)大,本文只是粗略的介紹,

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲国产综合在线看不卡| 亚洲aa在线| 午夜久久av| 91成人精品| 国产精品久久久久久久免费观看| 91久久亚洲| 999久久久91| 国内精品伊人| 国产乱人伦精品一区| 日韩视频网站在线观看| 国产精品极品在线观看| 亚洲精品无播放器在线播放| 天堂日韩电影| 国产日韩欧美一区二区三区 | 另类av一区二区| 亚洲国产影院| 日韩欧美精品综合| 国产色播av在线| 福利欧美精品在线| 麻豆国产91在线播放| 麻豆精品久久久| 国产精品亚洲欧美一级在线| 国产欧美日韩在线一区二区| 日本欧洲一区二区| 男女性色大片免费观看一区二区| 久久精品二区三区| www.九色在线| 国产精品久久久久蜜臀 | 久久国产精品亚洲77777| 九九精品调教| 色天使综合视频| 亚洲国产专区校园欧美| 亚洲二区三区不卡| 视频一区中文| 在线一区免费| 日韩一区欧美二区| 亚洲一二三区视频| 亚洲精品激情| 国产精品tv| 婷婷综合成人| 久久国内精品自在自线400部| 日本va欧美va欧美va精品| 国产欧美丝祙| 国产粉嫩在线观看| 国产综合精品| 国产亚洲高清视频| 视频在线观看91| 亚洲三级观看| 777久久精品| 久久精品午夜| 成人精品中文字幕| 久久高清一区| 久久精品99久久久| 久久中文欧美| 国产精品毛片久久| 久久中文字幕av| 丝袜美腿成人在线| 日韩国产一区二| 久久麻豆视频| 蜜桃av在线播放| 久久电影一区| 国产精成人品2018| 日韩免费久久| 男人天堂欧美日韩| 欧美欧美黄在线二区| 国产精品99一区二区三| 激情综合自拍| 日本亚洲视频| 国产一区二区三区不卡av| 国产高潮在线| 三级亚洲高清视频| 日韩av一级片| 日韩大片在线| 日本免费在线视频不卡一不卡二| 久久精品二区亚洲w码| 免费日本视频一区| 久久精品免费一区二区三区| 国产精品久久久久久妇女| 乱人伦精品视频在线观看| 都市激情国产精品| 国产人成精品一区二区三| 亚洲尤物在线| 91精品精品| 国产成人精品亚洲线观看| 视频一区二区三区入口| 99免费精品| 黄色在线观看www| 国产精品一区二区中文字幕| 免费成人av在线播放| 五月天久久777| 成人一二三区| 国产激情综合| 欧美天堂一区| 在线精品国产亚洲| 亚洲精品一区二区在线看| 久久久久久自在自线| 国产精品videossex| 91精品国产经典在线观看| 三级一区在线视频先锋| 精品亚洲美女网站| 国内自拍视频一区二区三区| 国产剧情在线观看一区| 日本一区二区中文字幕| 久久亚洲图片| 老司机久久99久久精品播放免费| 亚洲天堂久久| 成人羞羞在线观看网站| 欧美经典一区| 国产区精品区| 国产毛片久久久| 日本欧美一区二区在线观看| 亚洲久久一区| 日本伊人午夜精品| 亚洲男人在线| 亚洲成人免费| 欧美成人精品| 欧美+日本+国产+在线a∨观看| 日韩av首页| 亚洲特级毛片| 日韩一级精品| 久久xxxx| 亚洲日韩中文字幕一区| 在线一区二区三区视频| 蜜臀久久99精品久久久久宅男| 亚洲经典在线| 免费看的黄色欧美网站| 免费成人av在线播放| 蜜桃av一区二区三区电影| 亚洲综合图色| 久久亚洲美女| 亚洲精品亚洲人成在线观看| 日韩av成人高清| 国产精品观看| 精品视频一区二区三区在线观看 | 国产成人精选| 美女福利一区二区三区| 日本在线精品| 国内精品福利| 视频一区二区欧美| 亚洲婷婷丁香| 欧美专区一区| 国产精品日韩精品中文字幕| 欧美天堂一区二区| 国产精品一区亚洲| 免费一区二区三区在线视频| 久久精品一本| 日韩不卡免费高清视频| 欧美1区免费| 日韩一区精品视频| 欧美一区不卡| 精品视频91| 亚洲高清激情| 在线亚洲国产精品网站| 亚洲精品大片| 美女久久精品| 国产在线|日韩| 中文日韩在线| 日韩激情中文字幕| 精品视频免费| 九色精品91| 日韩一区免费| 国产精品黑丝在线播放| 99香蕉国产精品偷在线观看 | 亚洲97av| 久久久国产精品网站| 91精品一区国产高清在线gif| 国产精品日韩久久久| 国产一级成人av| 欧美国产一级| 性欧美长视频| 国产精品115| 欧美日韩在线观看视频小说| 免费一区二区视频| 精品五月天堂| 亚洲一区国产| 精品一区二区三区亚洲| 91久久久精品国产| 国产视频一区二区在线播放| 久久中文字幕一区二区三区| 亚洲第一区色| 欧美偷窥清纯综合图区| 日韩在线短视频| 日韩1区2区3区| 欧美日韩免费观看视频| 婷婷五月色综合香五月| 中文在线中文资源| 亚洲精品免费观看| 色偷偷偷在线视频播放| 涩涩涩久久久成人精品| 色天使综合视频| 欧美日韩午夜电影网| 免费视频一区三区| 国产精品jk白丝蜜臀av小说| 久久美女精品| 欧美成人一二区| 国产免费成人| 成人午夜亚洲| 亚洲精品无播放器在线播放| 天堂网av成人| 欧美a在线观看|