文章目录
Fiddler 基本工作原理
Fiddler介于客户端和服务器之间,客户端发起的所有请求和响应Fiddler都能够监听到。
Fiddler界面熟悉
会话的概念:一次请求和一次响应就是一个会话。
fiddler主界面
工具栏
1:给会话添加备注信息
2:重新加载当前会话
3:删除会话选项
4:放行,和断点对应,后面详细讲解
5:响应模式。也即是,当Fiddler拿到远程的response后是缓存起来一次响应给客户端还是以stream的方式直接响应。
6:解码。有些请求是被编码的,点击这个按钮后可以根据响应的编码格式自动解码。
7:查找会话。
8:保存会话。
9:截屏。截屏后,会以会话的方式返回一个截图。
判断get和post请求
会话列表属性说明
查看请求头和请求体
删除一条会话,可以在选中会话后,按 del 删除,如若要清空列表,可以用 Ctrl + X
#栏图标说明
Fiddler 可以用来模拟低速网络环境,做弱网测试
原理:客户端请求、响应的数据都会通过Fiddler。因此,可以通过延迟发送数据或接收数据来限制网络的上传速度和下载速度,从而达到限速的效果。
Rules -> Performance -> Simulate Modem Speeds
:模拟调制解调器的速度
自定义限速:
Rules -> Cutomize Rules
打开 CustomRules.js 文档
网速核心代码如下:
代码分析:
判断 m_SimulateModem 是否为 true,也就是是否设置了弱网模式。
如果为弱网,那么上传的网速为 300ms/KB,下载的网速为 150ms/KB
想要多快的网速,可以在这里计算并更改。
Fiddler设置过滤(抓取指定服务器地址的数据)
填写服务器地址多个ip之间需要用 ; 隔开,或者每个ip或域名单独写一行
Hosts 第二个下拉选说明:
-
No Host Filter 不设置hosts过滤
-
Hide The Following Hosts 隐藏过滤到的域名
-
Show Only The Following Hosts 只显示过滤到的域名
-
Flag The Following Hosts 标记过滤到的域名
类型过滤:图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
.*\.(bmp|css|js|gif|ico|jp?g|png|swf|woff)
Fiddler模拟接口测试(自定义请求)
Get请求
Post请求
Fiddler打断点修改接口请求数据
基于Post请求
步骤:
第一步:设置Fiddler在请求发送之前拦截接口的请求数据
第二步:在浏览器中提交表单(第一步配置了的话,这里的表单数据不会立即提交,接口请求会被Fiddler拦截)
第三步:在Fiddler中修改请求的接口数据
第四步:在数据库中或者系统中查看提交的数据是否是修改过后的数据
第一步:设置Fiddler在请求发送之前拦截接口的请求数据
菜单栏:Rules -> Automatic Breakpoints -> Before Requests
第二步:在浏览器中提交表单(第一步配置了的话,这里的表单数据不会立即提交,接口请求会被Fiddler拦截)
第三步:查看拦截的请求并在Fiddler中修改请求的接口数据
拦截到的接口请求如下图:
修改接口数据并提交请求
提交完成之后,在响应头 Response Headers 中可以响应信息,200表示提交成功!
第四步:在数据库中或者系统中查看提交的数据是否是修改过后的数据
Fiddler打断点修改接口响应数据
http://m.ge960.com/
打开开发者调试工具,分析有效URL,方便待会儿的响应数据篡改工作。
把响应的数据拷贝出来。用 JSON在线工具解析
Json数据的简单说明
Fiddler开始修改响应数据
核心步骤:
第一步:打抓取响应数据断点
第二步:在Fiddler中找到核心会话(接口)
第三步:点击【Textview】修改需要的返回结果。
第四步:修改完成后,第二步中选项卡【Transformer】的编码格式要重新设置回去,重新压缩在发送。点击【Run to Completion】。
第五步:验证页面是否按照修改预期展示。
第一步:打抓取响应数据断点
Rules -> Automatic BreakPoints -> After Response
浏览器中访问商城首页
第二步:在Fiddler中找到核心会话(接口)
核心URL:http://m.ge960.com/home/module.htm?pageId=187
只有核心URL不跳过,其它的URL都直接跳过就可以。
图中#下面的图标,表示现在的请求的响应数据被拦截了,这个直接放行。
点击这个会话,查看右侧 response
的选项卡【Transformer】,记住当前选中的编码格式,默认【chunked Transfer-Encoding】是选中的,去掉勾之后下方【HTTP Compression】选中在【None】上,意思是不压缩,如果不点你的代码没办法修改是乱码的。修改完之后记得是要点回来的,重新压缩在发送。
第三步:点击【Textview】修改需要的返回结果。
第四步:修改完成后,第二步中选项卡【Transformer】的编码格式要重新设置回去,重新压缩在发送。点击【Run to Completion】。
第五步:验证页面是否按照修改预期展示。
Fiddler配置Https
打开Fiddler Tool->Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler).
选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate
另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。
证书安装提示:选“Yes”
点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
点击是。
点击确定,这样Fiddler证书就已经添加成功了。
查看一下证书,Actions—>open windows certificate Manager
可以证书已经添加进去了,证书名称就是之前提醒大家留意的,【DO_NOT_TRUST_FiddlerRoot】
Fiddler 导出证书
导出证书到桌面
Fiddler 菜单栏 Tools -> Options
Fiddler可以截获抓取HTTPS请求
浏览器导入Fiddler证书(Fiddler抓取Https请求)
打开Chrome设置 -> 高级 -> 隐私设置和安全性 -> 管理证书 -> 导入
导入证书
配置好成功之后,PC端Fiddler中就可以抓取到Https请求了
移动端抓包(Https)配置和使用
第一步:Fiddler安装证书配置HTTPS
第二步:设置端口,开启允许远程连接
fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口,下文移动端连接Fiddler服务需要使用到。
勾选上 “Allow remote computersto connect” ,允许远程设备连接。
为了减少干扰,可以去掉 “Act assystem proxy on startup” 。
第三步:重启Fiddler
。不重启的话,后面在手机端无法访问Fiddler服务
第四步:手机访问Fiddler服务,下载安装证书到手机
先通过命令 ipconfig
看本机的IP地址
由此,可以确定我们Fiddler服务的访问地址是 192.168.3.3:8888
在手机浏览器中输入Fiddler服务地址(手机和电脑需要在同一个网络环境
),即可得到如下界面:
点击 FiddlerRoot certificate
即可下载证书
这里可能会遇到个问题,浏览器中访问Fiddler服务地址拿不到这个页面。通常会是以下两种情况:
- 手机和电脑(Fiddler服务)不在同一个网络环境下
- Fiddler中配置完允许远程访问之后没有重启Fiddler
手机安装证书,打开下载好的证书,凭据用途选择 VPN和应用
,给证书起个名字,确定之后安装完成。
第五步:配置手机的网络代理
打开无线网设置界面,找到【修改网络】 -> 【显示高级选项】 -> 【代理】 -> 【手动】
当前界面填写Fiddler的IP地址和端口号,点击保存,网络代理设置就配置完成了。
至此,完成!