成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

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

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

php零基礎到就業直播視頻課:進入學習

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

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

1. 抓包的原理

1.1 什么是抓包?

抓包就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操作,通過抓包可以:

  • 分析網絡問題

  • 業務分析

  • 分析網絡信息流通量

  • 網絡大數據金融風險控制

  • 探測企圖入侵網絡的攻擊

  • 探測由內部和外部的用戶濫用網絡資源

  • 探測網絡入侵后的影響

  • 監測鏈接互聯網寬頻流量

  • 監測網絡使用流量(包括內部用戶,外部用戶和系統)

  • 監測互聯網和用戶電腦的安全狀態

  • 滲透與欺騙

回顧下計算機網絡知識,數據在網絡上是以很小的的單位傳輸的,幀通過特定的稱為網絡驅動程序的程序進行成型,然后通過網卡發送到網線上,通過網線到達目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網捕獲到這些幀,并告訴操作系統幀已到達,然后對其進行存儲。在這個傳輸和接收的過程,就可以使用抓包工具(Sniffers)進行抓包,作為前端開發者,通常是抓取應用層的 HTTP/HTTPS 的包。

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

1.2 HTTP/HTTPS 抓包原理

HTTP/HTTPS 是應用層使用的通信協議,常見的應用層體系結構是客戶端-服務器體系。

對運行在不同端系統上的客戶端程序和服務端程序是如何互相通信的么?實際上,在操作系統上的術語中,進行通信的實際上是進程而不是程序,一個進程可以被認為是運行在端系統中的一個程序。

在 web 應用程序中,一個客戶瀏覽器進程與一臺服務器進程進行會話交換報文。

瀏覽器進程需要知道接收進程的主機地址,以及定義在目的主機中的接收進程的標識符,也就是目的端口。

多數應用程序由通信進程對組成,每對中的兩個進程互相發送報文。進程通過一個稱為套接字的軟件接口向網絡發送報文和從網絡接收報文。

進程可以類比一座房子,而它的套接字可以是它的門,套接字是應用層與運輸層之間的端口。

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

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

思路就是設置一個中間人進程負責抓包,每次目標進程之間的會話都先與中間人進程通信,再進行轉發。

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

1.2.1 HTTP 抓包原理

在 http 標準中,沒有對通信端身份驗證的標準。對于服務器來說,它接收的 HTTP 請求報文只要格式符合規范,就發送響應報文。

對于客戶端來說也是如此,它無法校驗服務器的身份,比如它連接的 http://www.jecyu.com 的主機,但由于中間節點的存在,最終連接的可能是 http://www.jerry.com 的主機。

因此,對于 HTTP 抓包,無需做過多的處理,只需要讓中間人負責轉發客戶端和服務端的數據包。

1.2.2 HTTPS 抓包原理

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

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

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

HTTP + 加密 + 認證 + 完整性保護 = HTTPS

其中驗證身份問題是通過驗證服務器的證書來實現的,證書是第三方組織(CA 證書簽發機構)使用數字簽名技術管理的,包括創建證書、存儲證書、更新證書、撤銷證書。

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

瀏覽器連接至一個 HTTPS 網站,服務器發送的不僅僅只是服務器實體證書,而是一個證書鏈,但不包含根證書,根證書會被內嵌在 Windows, Linux, macOS, Android, iOS 這些操作系統里。

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

其中校驗證書分為兩步,證書的簽發者校驗和服務器實體證書校驗

1、證書鏈校驗:

  • 1.1 瀏覽器從服務器實體證書的上一級證書(比如 B 證書)獲取公鑰,用來校驗服務器實體證書的簽名(簽名是通過 CA 機構的私鑰簽名的),校驗成功則繼續,否則證書校驗失敗。

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

校驗成功則繼續,否則證書校驗失敗。

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

2、服務器實體證書校驗:訪問的域名信息是否與證書一致、日期、證書擴展校驗等。

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

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

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

  • client 發送隨機數 random1 + 支持的加密算法集合

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

  • client 驗證證書有效性,并用 random1 + random2 生成 pre-master-secure,通過服務端公鑰加密發送給 server

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

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

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

  • 最后,就可以使用 master-secure 進行真正的數據對稱加密傳輸。

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

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

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

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

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

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

其中很重要的一步是瀏覽器的根證書校驗,CA 機構不可能隨便給一個中間人簽發不屬于它的域名證書,也就不在客戶端的操作系統上了,因此只能把中間人的根證書,導入到客戶端的操作系統了,以此完成建立加密通信時對中間人證書的驗證。

1.3 電腦如何抓手機的包

要想通過電腦端獲取手機 Web 應用的數據包,根據前面所學,就需要中間人策略。

PC 端建立一個服務器中間人進程,偽裝為 web 應用的目標服務器。手機端 web 應用發送的請求數據先經過中間人,中間人進行攔截處理再發送給目標服務器。反過來,目標服務器發送的數據包先通過中間人,再由中間人響應給瀏覽器客戶端。

這里要注意的是,無論是個人電腦PC,還是移動端手機,都需要接入互聯網網絡,可以相互找到對方才能建立通信。

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

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

具體步驟:

  • 在 PC 電腦本地起一個服務器進程,監聽一個端口比如 8899

  • 在手機上連接同一個局域網,配置網絡代理,指向 PC 端的 IP 地址和 8899 端口

  • 這樣一來,手機上所有的網絡通信都會被先轉發到 PC 端的 8899 端口,就可以對數據包進行分析處理

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

2. 抓包工具 whistle

2.1 whistle 是什么

Whistle 是基于 Node 實現的跨平臺抓包免費調試工具,其主要特點:

1、完全跨平臺:支持 Mac、Windows 等桌面系統,且支持服務端等命令行系統

2、功能強大:

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

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

  • 支持重放及構造 HTTP、HTTPS、HTTP2、WebSocket、TCP 請求

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

  • 支持查看遠程頁面的 console 日志及 DOM 節點

  • 支持用 Node 開發插件擴展功能,也可以作為獨立 npm 包引用

3、操作簡單

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

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

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

如何快速使用 whistle

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

  • 全局安裝 whistle

npm i -g whistle & w2 start

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

w2 proxy // 設置全局代理  w2 proxy off // 關閉全局代理

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

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

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

  • 選擇 Whistle 代理

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

  • 設置 Whistle 代理

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

2.2 whistle 可以做的事情

whistle 可以做的事情很多,以下是官網圖:

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

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

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

3. whistle 實戰案例

3.1 原生 app 加載 PC本地代碼開發

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

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

因為我的 web 服務端是 https 應用,因此需要下載 whistle 提供的根證書,手動導入到手機上。

點擊 HTTPS 菜單,然后使用手機掃描二維碼,使用手機瀏覽器打開即可下載,在手機證書中設置進行導入并且設置信任。

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

此時,再在手機上配置代理指向 PC 電腦的 IP和 whistle 監聽的端口即可在電腦上截獲數據包。

我本地webpack 啟動的服務器應用訪問地址為:xxx.xxx.xxx.xxx:8080

whistle 的配置規則:

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

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

devServer: {  allowedHosts: 'all',  }

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

3.2 查看移動端的 DOM 樣式

Whistle 能夠通過內置的 Weinre 去實現查看移動端的 DOM 樣式,配置規則如下

# 設置 weinre  https://juejin.cn weinre://test

手機上重新訪問 juejin.cn 網站,然后打開 weinre 可以看到如下,綠色表示遠程連接成功。

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

可以點擊 Element 查看手機上網頁 DOM 結構、樣式等信息。

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

也可以在 console 控制臺中,執行代碼,比如 alert ,手機應用上會顯示彈框。

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

4. 總結

學會抓包是軟件開發人員必須掌握的調試技能,本文先介紹抓包的原理,再介紹抓包工具 whistle 的使用,whistle 非常強大,本文只是粗略的介紹,

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产成人AV一区二区三区| 国产男男Gay做受×Xx男| 成熟丰满熟妇偷拍XXXXX| 999国内精品永久免费视频| JEAⅠOUSVUE成熟HD| 草草CCYY免费看片线路| 国产高潮国产高潮久久久| 国产乱人伦偷精品视频免下载| 好紧真爽喷水高潮视频办公室| 久久成人无码专区| 国产AV国片精品一区二区| 午夜人妻免费视频| 久久精品国产久精国产果冻传媒| 中文字幕夫の上司に犯新沢平兰 | 国产95在线 | 传媒麻豆有限| 四虎影视国产精品久久| 久久99精品久久久久久不卡| NARUTOMANGA无尽纲手| 亚洲 无码 制服 日韩 中文| 色婷婷久久综合中文久久蜜桃AV| 狠狠干2015最新版| 被添高潮爱爱免费视频| 亚洲精品成人网站在线观看| 秋霞一区二区三区| 国产色在线 | 日韩| AV狠狠色超碰丁香婷婷综合久久| 四虎成人WWW成人影院| 老乞丐没完没了73节| 国产成人精品久久| 菠萝蜜进口路线区二1688| 深夜A级毛片免费视频| 老汉扛起娇妻玉腿进入| 雨后小故事完整版| 内射爽无广熟女亚洲| 国产午夜片无码区在线观看| 亚洲无人区码二码三码区别| 搡老女人老妇老熟女HHD| 久久久久亚洲AV无码专区喷水 | 四虎亚洲精品成人A在线观看| 亚洲精品无码专区在线播放| 无码专区HEYZO色欲AV| 亚洲午夜国产成人AV电影| CHINESE性老妇老女人| 国产剧情AV在线| 老太性开放BBWBBWBBW| 三级做A全过程在线观看| 亚洲春色CAMELTOE一区| AV无码精品一区二区三区| 国产熟妇人妻ⅩXXXX麻豆网址 | 女人脱精光让人桶爽了| 无码AV蜜臀AⅤ色欲在线| 幼儿幼儿幼儿N0UUUUU精品| 夫妇联欢会回不去的夜晚樱花| 精品久久久久成人码免费动漫| 欧美视频一区二区三区四区| 亚洲AV无码成人网站在线观看| A级毛片免费无码观看、、| 国产一区二区三区久久精品| 欧美性白人极品1819HD| 亚洲成a人片在线观看无码关注| CAOPORN国产精品免费| 激情偷乱人伦小说视频最新章节| 强行征服邻居人妻| 亚洲精品无码久久久影院相关影片| 八戒八戒神马影院在线4| 精品人妻中文AV一区二区三区 | 波多野结衣AV高清一区二区三区| 精品人妻人人做人人爽| 视频视频APP在线看| 中文文字幕文字幕亚洲色| 国产裸体美女永久免费无遮挡| 哦┅┅快┅┅用力啊┅┅动态图| 亚洲产在线精品亚洲第一站一| 被强迫的爱人 电影| 久久麻豆精亚洲AV品国产APP| 玩乡下黄花小处雏女| 99久久久国产精品消防器材| 精品卡一卡二卡3卡高清乱码 | 麻花传媒MD0076在线入口| 性欧美ⅩXXXX极品少妇小说| 被猛男房东CAO到哭H| 林静公交车被做到高C的原因| 性色AV性色生活片| 边喂奶边中出的人妻| 久久综合九色综合欧美狠狠| 亚洲Av无码成人黄网站在线| 丁丁一进一出动态图| 内射人妻无码色AV麻豆| 亚洲色大成网站WWW永久| 国产精品伦一区二区三级视频| 人妻AV无码系列专区移动可看 | 久久99精品久久久久免费| 无码国产成人午夜在线观看| 边摸边吃奶又黄又激烈视频| 免费人成网站在线观看欧美| 亚洲精品国产AⅤ成拍色拍| 国产精品扒开腿做爽爽爽日本无码 | YY8098影视理论无码专区| 旧里番YY6080在线播放| 亚洲国产精品久久人人爱| 国产精品久久久久久一区二区三区 | 欧美专区日韩视频人妻| 又大又粗欧美成人网站| 精品乱人伦一区二区三区| 性亚洲VIDEOFREE高清极| 高潮毛片无遮挡高清免费视频| 秋霞国产午夜伦午夜福利片| 50岁老熟女一级毛片| 伦人伦XXXX国语对白| 亚洲日韩乱码中文无码蜜桃臀| 国产无遮挡裸体美女视频| 无码人妻丰满熟妇区五十路在线 | 亚洲中文字幕一区精品自拍| 狠狠综合久久久久尤物丿| 亚洲AV成人片无码www电影| 国产精品国产三级国产AV′| 少妇特黄A一区二区三区| 敌伦交换第11部分给了| 日韩精品久久无码中文字幕| 不知火舞蹈三个小孩海边X| 欧美日韩无线码在线观看| 51成品网站W灬源码1688| 没带罩子让他捏了一节课| 英语老师没戴套让我C了一节课 | 亚洲国产成人精品无码区2021| 国产又色又爽又刺激在线播放| 西方38大但人文艺术| 国产男男GAY做受ⅩXX小说| 无码一区二区三区AⅤ免费蜜桃视| 国产成人精品三级在线影院| 太大太长太粗太久太硬了| 国产成人精品三级在线影院| 无码不卡AV东京热毛片| 国产欧美日韩视频免费| 亚洲A∨精品一区二区三区| 国产在线不卡人成视频| 亚洲AV综合色区无码一区偷拍| 国内精品久久久久影院蜜芽 | 人人妻人人狠人人爽| 波多野结衣AV中文一区二区三区| 日本免费一区二区三区最新VR | 人妻丰满妇岳av无码区HD| 保守人妻精油按摩被强出| 日本在线视频WWW鲁啊鲁| 伽罗ちゃんが腿法| 无码人妻一区二区三区麻豆| 国产在沙发上午睡被强| 亚洲人成网站18禁止影院| 久久丫免费无码一区二区| 中文无码精品一区二区三区 | 黑人上司粗大拔不出来| 亚洲精品偷拍区偷拍无码| 久久久久亚洲AV无码六十路老熟| 再深点灬舒服灬太大了添视频软件 | 久久99国产精品99蜜桃| 中国国语毛片免费观看视频| 欧美激情在线播放| 粗大的内捧猛烈进出无码| 无码AV最新无码AV专区| 黑人巨茎大战白人女40CM| 一本一道AV无码中文字幕麻豆| 女厕脱裤撒尿大全视频| 成人午夜视频精品一区| 无码少妇一区二区浪潮免费| 精品久久久久久国产潘金莲| 一区二区无码在线视频| 欧美午夜精品久久久久久浪潮| 粉嫩少妇内射浓精VIDEOS| 性无码一区二区三区在线观看 | 第一福利视频500| 亚欧洲乱码视频一二三区| 久久婷婷综合缴情亚洲狠狠| FREE乌克兰嫩交HD| 偷窥 亚洲 另类 图片 熟女| 精品国产AV无码一区二区三区| 资源在线WWW天堂官网| 日韩av一区二区三区| 国产在线孕妇孕交| 在厨房娇妻被朋友胯下挺进| 人人超碰97CAOPOREN国| 国产精品免费视频网站| 亚洲永久无码7777KKK| 侵犯美人妻中出中文字幕| 国产精品免费久久久久影院仙踪林 | 欧美金妇欧美乱妇XXXX| 国产成人果冻星空传媒| 亚洲色无码专区一区| 人妻少妇啊灬啊灬用力啊快| 国产偷自一区二区三区| 最新国产毛2卡3卡4卡| 太深太粗太大太猛太爽了视频| 久久不见久久见免费视频3| 97在线无码免费人妻短视频| 铜铜铜铜铜铜铜好大好深色板| 久久精品99国产AV精品蜜桃| 白丝JK高潮喷水在线观看| 亚洲AV永久无码精品主页 | 60老熟女多次高潮露脸视频| 玩弄JAPAN白嫩少妇HD| 老男人把舌头伸进我下面|