本帖最后由 草帽路飞UU 于 2022-8-11 16:25 编辑
2.3.8 iOS系统10.3以上,手动信任证书若iOS系统版本是10.3以上,那么证书可能没有被信任,需要手动设置信任证书。依次打开设置→通用→关于本机→证书信任设置,将Fiddler证书启用即可,如图2-17所示。
图2-17 iOS中启用Fiddler证书
2.4 Fiddler包太多找不到自己想要的
Fiddler启动后,Web Session列表就会抓到很多HTTP请求,初学者往往会比较迷茫,因为找不到自己要抓的包。下面介绍几个方法来找到自己要抓的包。
2.4.1 停止抓包
最推荐使用这个方法。在抓包之前,先把Web Session里面抓到的数据包全部清空,然后再操作网页。在抓到想要的包后,就暂停抓包,这个方法简单、实用。熟练使用这个方法后,就不需要使用其他过滤的方法了。抓包开关如图2-18所示。
图2-18 抓包开关 2.4.2 只抓手机,不抓本地的包在专门抓App的包的时候,Fiddler里面混杂了本地计算机和手机App的包,如果只想抓手机App的包,这时候可以选择“…from remote clients only”,如图2-19所示。 图2-19 设置只抓远程的包 2.4.3 过滤会话Fiddler有非常强大的过滤会话的功能,假如不想看到localhost的数据包,就可以把它隐藏。过滤的设置如图2-20所示。注意,在设置时两个Host之间要用分号隔开。 图2-20 用Filters选项卡隐藏localhost
注意:使用了Filters选项卡后,记得取消Filters选项卡。可能下次抓包的时候,忘记设置Filters选项卡而抓不到包。很多人犯过这个错误。
2.4.4 只抓特定的进程 在状态栏中选择Web Browsers或者Non-Browser来选择进程,如图2-21所示。此外,工具栏中还有个按钮:Any Process,单击这个按钮把十字图标拖曳到想要抓包的程序上面,就只会抓特定进程的包,如图2-22所示。 图2-21 状态栏上按进程过滤 图2-22 只抓特定的进程 2.4.5 观察URL和HOST观察图2-23中的URL,可知这是登录相关的数据包。URL的命名都会是有意义的。比如登录的接口会包含login,注销的URL中会包含logout。 图2-23 观察URL 2.4.6 查看进程发包进程是计算机中程序的一次运行活动。Fiddler的Process列对应本地Windows进程。通过这一列我们可以知道是哪个进程在发包,如图2-24所示。 图2-24 在Fiddler中查看进程
2.5 HTTPS是否安全 Fiddler能分析HTTPS流量是不是意味着HTTPS协议不安全?
HTTPS是安全的,Fiddler抓HTTPS的时候安装了一个Fiddler的证书,所以Fiddler可以解密HTTPS的内容。HTTPS请求从计算机上发送到网络后,HTTPS的内容全部是加密的。
2.6 计算机连接手机热点抓包 在没有Wi-Fi的情况下,我们用手机开热点,计算机连接手机的热点来上网,这个时候计算机上的Fiddler能否抓到手机上的包呢?答案是不能。因为手机开热点后,采用的是GPRS手机流量上网,这个时候手机不能设置代理服务器的,如图2-25所示。 图2-25 WLAN热点
如果有两个手机,一台计算机,那么就可以抓包了。一个手机当成热点,另外一台手机和计算机都使用这个热点上网,手机的代理就可以指向计算机了。
客户端如何抓包 如果程序是用.NET开发的,那么Fiddler可以抓到包。因为.NET程序默认会使用系统代理。如果程序是用别的语言开发的,只要这个程序支持用户自定义代理,那么Fiddler也可以抓到包,比如Fiddler可以抓QQ。
如果客户端程序不支持代理,那么Fiddler就抓不到包了。
2.7 Fiddler测试App升级 Fiddler常用于App的升级测试,我们可以利用Fiddler伪造响应来测试App升级。
2.7.1 App升级原理 App是否升级的检查是在启动App访问服务器时进行的,把本地计算机上App的最新版本号与服务器端的最新版本号作对比,如果不一致就提示升级。
App升级的时候,App会发送一个HTTP请求,来问服务器有没有最新版。如图2-26所示,如果没有最新版,服务器返回的HTTP响应中会说没有更新。 图2-26 App没有新版本 如果有最新版,服务器返回的响应会告知有新版本,并且App端会有弹窗提示,如图2-27和图2-28所示。
图2-27 App有新版本
图2-28 App更新提示
2.7.2 App升级的测试
在实际测试中,我们一般不会去修改服务器,因为修改服务器会遇到下述问题。
修改服务器的代码,需要有很好的代码能力,99%的人做不到。
修改服务器的代码,还需要重新部署,耗时耗力。
不灵活,升级的情况有好几种,每次修改都要重新部署。
用Fiddler来模拟升级比较简单,如图2-29所示。
图2-29 Fiddler模拟
我们用Fiddler伪造一个HTTP响应就可以了。可以用下断点的方式修改HTTP响应,或者用Fiddler中的AutoResponder。接下来以坚果云为例介绍一下升级。
2.7.3 坚果云的升级
坚果云每次启动的时候,都会调用一个latestVersion的接口来查询服务器,看客户端有没有更新的版本,如图2-30所示。
对比HTTP响应中的版本和本地版本,如果服务器返回的版本更高,那么客户端就会弹出对话框,提醒用户升级App。
图2-30 坚果云的升级
2.8 短链接
短链接就是把普通网址转换成比较短的网址(如https://dwz.cn/8oVtHHyH)。在微博或者其他限制字数的应用里,短链接有很多好处:网址短、字符少、美观、便于发布和传播。
我们平常工作中写邮件使用短链接也会让邮件更加简洁和美观。
2.8.1 短链接原理解析
当我们在浏览器里输入https://dwz.cn/8oVtHHyH时:
浏览器会发送一个HTTP GET请求给dwz.cn;
dwz.cn服务器会通过短码8oVtHHyH获取对应的长网址;
服务器返回HTTP 301或者302的响应,响应中包含了长网址;
浏览器会跳转到长网址。
2.8.2 使用短链接
短链接的服务提供商有很多,比如:百度短网址http://dwz.cn,如图2-31所示。
图2-31 使用百度短网址
|