偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

接口測試實戰(zhàn)|Android高版本無法抓取 HTTPS怎么辦

移動開發(fā) Android
在接口測試中,相信很多人都遇到過 Android 高版本(Android7.0 以上)系統(tǒng)無法抓包的問題。

在接口測試中,相信很多人都遇到過 Android 高版本(Android7.0 以上)系統(tǒng)無法抓包的問題。

由于在測試過程中對分析定位問題很不方便,所以就想找開發(fā)的同學(xué)幫忙,結(jié)果開發(fā)也說搞不定,那只能自己解決了。

[[352694]]

問題分析

問題原因分析如下:

  • 問題:Android6.0 及以下系統(tǒng)可以抓包,而 Android7.0 及以上系統(tǒng)不能抓包;
  • 原因:Android7.0+ 的版本新增了證書驗證,所以 App 內(nèi)不再像原來一樣默認(rèn)信任用戶的證書;

參考網(wǎng)上資料得到如下解決方案:

方案一

  1. 在 Android 工程目錄的 res 底下創(chuàng)建一個 xml 文件夾,然后在內(nèi)部創(chuàng)建一個名為 “network_security_config.xml”的文件;
  1. <network-security-config> 
  2.     <base-config cleartextTrafficPermitted="true"
  3.         <trust-anchors> 
  4.             <certificates src="system" overridePins="true" /> 
  5.             <certificates src="user" overridePins="true" /> 
  6.         </trust-anchors> 
  7.     </base-config> 
  8. </network-security-config> 
  1. 在 AndroidManifest 里的標(biāo)簽中,添加代碼:
  1. android:networkSecurityConfig="@xml/network_security_config" 

然后重新編譯打包即可抓包,這對開發(fā)童鞋來說,也很方便。但是,因為測試的是企業(yè)微信小程序,想讓企業(yè)微信的開發(fā)人員幫我這么干,簡直是白日做夢,更不用說安全等問題...

方案二

找一個低于 6.0 或者等于 6.0 版本的 Android 設(shè)備或者模擬器,即可解決。但是考慮到:治標(biāo)不治本,公司本身就沒有這樣的設(shè)備,再加上找了幾個模擬器,都是 Android7.0 版本的,所以此方案,直接選擇放棄。

然后只好再去找開發(fā),開發(fā)研究了半天,結(jié)果過來告訴我,我的 iOS 是可以抓包的啊,Android 的就不知道了,一瞬間我都有點(diǎn)想掀桌子了......

[[352695]]

只好再找測試開發(fā)同學(xué)咨詢解決方案:

  1. 使用方案一
  2. 換個工具抓,例如 Fidder,或者 BurpSuite 等(這個嘗試后發(fā)現(xiàn)還是不行)
  3. 直接去 NG 那里攔截,但是我需要抓取的有一部分是第三方的接口(前方已經(jīng)高能,此路不通)

最后,還是有點(diǎn)不死心,自己繼續(xù)搜索各種資料,終于黃天不負(fù)有心人,找到了滿足條件的最終解決方法。

最終解決方案

Charles + VirtualXposed + JustTrustMe

實現(xiàn)步驟

進(jìn)入 Github 下載如下兩個 Page

  • VirtualXposed:https://github.com/android-hacker/VirtualXposed
  • JustTrustMe:https://github.com/Fuzion24/JustTrustMe

第一步

使用如下 adb 命令分別安裝兩個 pages

  1. adb -s R3J6R19B20004228 inatall VirtualXposed 
  2. adb -s R3J6R19B20004228 install JustTrustMe 

第二步

安裝完成進(jìn)入 VirtualXposed apk 應(yīng)用,點(diǎn)擊 6 個小點(diǎn)進(jìn)入設(shè)置頁面

接口測試實戰(zhàn)|Android高版本無法抓取 HTTPS怎么辦

第三步

進(jìn)入設(shè)置頁面,點(diǎn)擊模塊管理,勾選 JustTrustMe(當(dāng)然我并沒有找到它,可能是我這個版本不需要在手動選擇了,安裝之后自動識別到了)重啟之后我們重新進(jìn)去設(shè)置頁面,添加我們需要抓包的應(yīng)用即可,我這里選擇的企業(yè)微信做案例。

接口測試實戰(zhàn)|Android高版本無法抓取 HTTPS怎么辦

第四步

點(diǎn)擊添加應(yīng)用,選擇需要抓包的軟件安裝:

接口測試實戰(zhàn)|Android高版本無法抓取 HTTPS怎么辦

配置 Charles 抓包

設(shè)置 Charles 代理,此處不再說明,相信設(shè)置代理大家能自己解決,手機(jī)設(shè)置 wifi 里面代理改成手動。輸入IP,端口:默認(rèn)8888,注意手機(jī)和電腦在一個 wifi 下就 ok。

第六步

回到 VirtualXposed 上滑解鎖,打開我們之前安裝的企業(yè)微信,則發(fā)現(xiàn) charles 已經(jīng)成功抓取到安居客的 HTTPS 的數(shù)據(jù)包:

接口測試實戰(zhàn)|Android高版本無法抓取 HTTPS怎么辦

總結(jié)

測試工作中,遇到問題/bug 經(jīng)常會讓人很煩很慌,不知所措。但是,作為一個合格的測試人員,遇到事情,還是要努力做到「泰山崩于前而色不改,麋鹿興于左而目不瞬」(秀文采~),連開發(fā)都放棄了,咱還能保持淡定,方顯測試英雄本色!

技術(shù)進(jìn)階沒有捷徑,唯有一步步積累,踏坑填坑堅持走下去。這次的問題雖幾經(jīng)波折,但我最終搞定之后,開發(fā)看我的眼神都不一樣了,以后提 bug 也更加有說服力了。

[[352697]]

 

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2020-07-10 08:46:26

HTTPS證書劫持網(wǎng)絡(luò)協(xié)議

2011-07-28 13:45:06

2021-08-23 10:59:01

Nginx高可用Linux

2021-08-07 05:05:30

接口Redis項目

2024-08-06 08:08:14

2013-01-29 13:22:24

系統(tǒng)服務(wù)

2018-08-08 16:15:00

WindowsWindows 10USB

2017-03-02 21:00:53

Windows 10Windows搜索框

2017-03-01 15:08:44

Linuxboot目錄啟動

2019-06-12 10:55:30

IPv6Windows網(wǎng)絡(luò)連接

2011-02-23 17:33:48

FileZilla

2022-07-14 10:16:22

Flink

2022-10-10 08:28:57

接口內(nèi)網(wǎng)服務(wù)AOP

2011-05-04 11:24:44

打印機(jī)

2012-06-06 17:05:36

谷歌視頻

2012-05-16 12:39:23

Windows7視頻

2009-11-27 11:16:30

2017-07-17 10:15:07

Windows 10Windowsinternet ex

2009-11-03 08:56:02

linux死機(jī)操作系統(tǒng)

2024-04-22 08:17:23

MySQL誤刪數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號