自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

[[352694]]

問題分析

問題原因分析如下:

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

參考網(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 里的標簽中,添加代碼:
  1. android:networkSecurityConfig="@xml/network_security_config" 

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

方案二

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

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

[[352695]]

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

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

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

最終解決方案

Charles + VirtualXposed + JustTrustMe

實現(xià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 

第二步

安裝完成進入 VirtualXposed apk 應用,點擊 6 個小點進入設置頁面

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

第三步

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

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

第四步

點擊添加應用,選擇需要抓包的軟件安裝:

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

配置 Charles 抓包

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

第六步

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

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

總結(jié)

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

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

[[352697]]

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2020-07-10 08:46:26

HTTPS證書劫持網(wǎng)絡協(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)服務

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)絡連接

2011-02-23 17:33:48

FileZilla

2022-10-10 08:28:57

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

2022-07-14 10:16:22

Flink

2012-05-16 12:39:23

Windows7視頻

2012-06-06 17:05:36

谷歌視頻

2009-11-03 08:56:02

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

2024-04-22 08:17:23

MySQL誤刪數(shù)據(jù)

2017-02-21 13:11:43

SDN網(wǎng)絡體系SDN架構

2022-05-19 08:01:49

PostgreSQL數(shù)據(jù)庫

2022-12-19 11:31:57

緩存失效數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號