前端抓包调试工具

一、调试工具

1、h5调试

  • 推荐使用腾讯团队开发的vconsole,毕竟团队官方在维护,稳定性和安全性更有保证。
  • 官方文档:https://github.com/Tencent/vConsole
  • 经历了2020年整年没有更新,在2021年又重新开始了大量更新,直接上最新版吧,相对于老版本多了location的默认显示,再也不用手动输入location.href查看页面地址了。

2、小程序调试

  • 小程序调试有官方内嵌的调试工具,也就是低配版的vconsole
  • 开启方式:首先需要小程序是开发版或体验版,然后点击右上角三个点,打开调试,重新打开小程序就能看到了。
  • 官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/usability/debug.html
  • 如果想在线上小程序打开调试,可以先在对应的开发版或体验版小程序里打开调试,然后再打开线上版小程序,就能看到调试工具了,这不是bug,是小程序官方承认了的,算是后门。
  • 小程序官方的调试工具很鸡肋,没有network日志,没有storage日志
  • 对于接口数据请求的日志建议还是自己封装一下打印出来,所有接口都打印出来有点凌乱,建议做个判断,只在接口异常的情况下再打印接口日志,正常情况下的可以局部打印,也可以配合抓包工具查看。

二、移动端抓包

1、charles

charles是一款抓包工具,相比于fiddler凌乱的界面数据,charles更加清晰简洁,同时支持mac和windows。
不过它本身是收费的,有30天试用,网上有很多破解版,也有注册码,破解版百度一搜就能找到。

下面说一下安装完charles后的一些配置方式(v4.6.1):

  • 步骤一-获取电脑ip: 菜单栏 - Help - Local IP Address,这里是电脑本机ip地址

  • 步骤二-手机组成局域网: 手机和电脑连接同一网域组成局域网,打开手机连接的wifi高级设置,配置代理,代理改为手动,主机名填写电脑ip,端口默认8888,保存

  • 步骤三-手机安装证书: 手机打来浏览器输入chls.pro/ssl下载安装ca证书。

    • ios10+版本还需要在证书信任设置里信任一下安装的charles证书,具体方式:打开ios【设置】>【通用】>【关于本机】>【证书信任设置】,把刚才添加的证书后面的 Switch 打开。
    • android手机如果无法正常下载证书,也可以选择保存证书后手动安装。具体方式: charles菜单栏 - Help - SSL Proxying - Save Charles Root Certificate…,选择.cer格式保存在电脑上再传输给手机安装ca证书。
  • 步骤四-配置代理访问白名单: 菜单栏 - Proxy - Access Control Settings,点击Add,填写0.0.0.0/0,点击OK

  • 步骤五-配置https代理: 菜单栏 - Proxy - SSL Proxying Settings,勾选Enable SSL Proxying,左侧Include栏里点击Add,弹出的小窗里Host栏输入*,Port栏输入*,点击OK

ok完成。

2、spy-debugger

spy-debugger是一个专门服务于移动端h5的调试插件。

  • 官方地址:https://github.com/wuchangming/spy-debugger
  • 具体使用方式参考官方文档教程,不再赘述了。
  • 需要注意手机配置手动代理时默认端口号是9888,手机安装证书方式的网址是http://s.xxx

重点来了,spy-debugger相比于charles的优势是什么:

  • spy-debugger能抓取到spa单页面应用hash路由下的完整页面地址,包含#号后面的路由和参数,而charles抓取不到#号之后的地址内容。
  • spy-debugger能达到移动端vconsole工具的效果,能在电脑上显示调试页面的面板信息,包括elements页面元素、css样式、console日志、storage存储内容都能显示,对于线上bug的排查非常有用。
  • spy-debugger能修改页面elements元素和css样式,且页面能实时看到修改后的效果,样式bug排查利器。

3、安卓7.0+版本下的抓包

安卓7.0+的版本,app里默认会有安全限制,只信任系统证书,默认情况下是无法抓到包的。

扫描二维码关注公众号,回复: 13715325 查看本文章
  • 方案一: 在app里配置信任用户证书。
    配置文件:res/xml/network_security_config.xml

    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" overridePins="true" /> <!--信任系统证书-->
                <certificates src="user" overridePins="true" /> <!--信任用户证书-->
            </trust-anchors>
        </base-config>
    </network-security-config>
    
  • 方案二: 把ca证书安装到system系统证书目录里:

    • 需要手机提前获取完整root权限(需解锁system分区)
    • 系统证书的目录是:/system/etc/security/cacerts/
    • 每个证书的命名规则为:<Certificate_Hash>.<Number>
    • Certificate_Hash表示证书文件的 hash 值,Number是为了防止证书文件的 hash 值一致而增加的后缀
    • 证书的 hash 值可以由命令计算出来,把证书(.pem格式)保存在电脑上,在电脑终端输入openssl x509 -subject_hash_old -in <Certificate_File>,其中Certificate_File为证书路径,得到结果hash,将证书重命名为hash.0放入系统证书目录,修改权限为rw-r-r,即可正常抓包。
    • 无法使用openssl的可以百度win10安装openssl,按照教程安装,配置完环境变量后记得重新打开命令窗口操作。
    • 在这里插入图片描述

我自己的手机是安卓,目前是用的最后这个方式,就是安装证书到系统目录,过程也是相当艰辛。。。


参考链接:
https://testerhome.com/topics/17746

猜你喜欢

转载自blog.csdn.net/u010059669/article/details/118361826
今日推荐