编辑Fiddler的FiddlerScript脚本,代理请求到本地

前言在这里插入图片描述

博主JAVA开发工程师一枚。
最近两年工作基本上都是前后端分离~

之前做电商项目,版本开发过程中,App开发同事(安卓/IOS)都会打一个测试包给我们,对自己开发的那部分接口进行自测。然而,App调试不同于Web开发,打开F12,就能看到每一个请求的详细信息(接口名,参数,响应),所以需要通过抓包,进行调试。

常用的抓包工具有FiddlerCharles两种

编辑Fiddler的FiddlerScript脚本,代理请求到本地

使用场景
实际抓包调试过程中,因为手机安装的app调用的接口都是测试环境的,现在为了安全,一般都是https请求。那么,如果要调试我们本地的接口,可以编辑Fiddler的FiddlerScript脚本,新增rule,替换对应的请求url。

例如:https://dev.aliyun.cn/core 替换成 http://127.0.0.1:8080/core,
https://dev.aliyun.cn/pay 替换成 http://127.0.0.1:8081/pay ,从而访问到我们本地

我们只要一小段 FiddlerScript 代码就能完成此功能:


  // 自定义规则:
  if (oSession.isHTTPS && oSession.HostnameIs("ops.qncloud.cn")) {
       // 将https 替换为 http
       oSession.oRequest.headers.UriScheme = "http";
       
       // 替换链接(部分替换,这里将域名替换为127.0.0.1:8081
       if (oSession.url.IndexOf('ops.qncloud.cn/sdm')>-1) {
           oSession.url = oSession.url.Replace('dev.aliyun.cn/pay', '127.0.0.1:8081/pay');  
       }
       if (oSession.url.IndexOf('ops.qncloud.cn/helpdesk')>-1) {
           oSession.url = oSession.url.Replace('dev.aliyun.cn/core', '127.0.0.1:8080/core');
       }
   }

添加的位置:在 FiddlerScript 标签里搜索 OnBeforeRequest 方法,加到最上面即可:
在这里插入图片描述
记得在 Options -> HTTPS 里选中 Decrypt HTTPS traffic。并且修改之后,一定要点一下Save Script 按钮才会生效

重新操作app,看看有没有访问到本地???


下面博主只做记录,读者不必阅读!!!

原理

简单讲,Fiddler相当于一个代理,当客户端发送 http/https请求 给服务器的时候,Fiddler 拦截到请求,我们可以对请求的相关数据进行自定义(如更改请求参数,请求url等),然后Fiddler按照我们自定义的形式去请求服务器,最后把服务器的响应返回给客户端。

这整个过程就叫抓包。我们可以分析抓包得到的数据,进行调试。

了解了Fiddler大致的工作流程,接下来,本篇博客后面部分主要介绍对IOS进行抓包(转载其他博客)


Fiddler的安装和配置,网上教程很多,我这里就不再重复码字了,转载一篇写得很详细的博客,如下:

以下内容均为转载,原文博客地址:使用Fiddler进行iOS APP的HTTP/HTTPS抓包

拦截指定链接,过滤指定链接Fiddler简单使用教程

一、PC上安装Fiddler

步骤略。

二、Fiddler配置(配置完后记得要重启Fiddler)

打开Fiddler, Tools-> Fiddler Options 。
选中"Decrpt HTTPS traffic",Fiddler就可以截获HTTPS请求
选中"Allow remote computers to connect".是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
在这里插入图片描述
在这里插入图片描述

三、手机配置

(1) 网络代理设置
安装Fiddler的机器,跟iPhone 必须在同一个网络里, 否则iPhone不能把HTTP发送到Fiddler的机器上来。一般情况,我们手头上是台式机和手机,台式机只有网线,没有无线wifi,所以和手机不在同一个网络,这时,我们就需要设置代理了
打开iPhone, 找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888
在这里插入图片描述
(2) Fiddler证书安装
这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步

  1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104
  2. 打开IPhone 的Safari, 访问 http://192.168.1.104:8888, 点"FiddlerRoot certificate" 然后安装证书
    现在大功告成,可以抓包了。iPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。
    在这里插入图片描述

实例:打开Safari,
3. 输入http://www.cnblogs.com/tankxiao. 看看Fiddler能否捕获。
4. 输入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕获。
是不是HTTP和HTTPS都截获到了?, 你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.
四、注意事项
(1)用完了, 记得把IPhone上的Fiddler代理关闭, 以免IPhone上不了网。
(2)只能捕获HTTP,而不能捕获HTTPS的解决办法
有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是:
5. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->“描述文件”)
6. 安装上面的方法,重新安装Fiddler证书


其他操作:
在这里插入图片描述
左下角黑色命令行:
语法:
替换:urlreplace www.demo.com www.dev.demo.com (注意,只能替换一种规则,且替换的链接中不能带http:)
清除:urlreplace

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值