在了解如何使用Fiddler工具抓包时,可以加深对接口的认知,而且可以拿到一些成熟的接口,方便自己写玩具的时候使用。当然了,这个仅仅是摸鱼的时候使用,切记不可拿来做商业宣传之类的事情、切记不要用于非法用途。
Fiddler可以称为拉小提琴的人,也可以称作是骗子。
Fiddler是位于客户端和服务端之间的HTTP代理,所以它可以监测两端之间的通信。
既然我们可以获取到两端之间的数据传输,那么可以想象,这是否意味着我们可以在数据还未发送给目标端口的时候做一些操作呢,例如:
安装与配置
常用的几个快捷键:
Ctrl+X:清空所有记录
F12:启动或者停止抓包
Delete:删除某条请求
Shift + Delete:在选中一条请求后,清空其他的所有包
Shifr + R:选中一条请求后,设置接下来的重复请求次数
Ctrl+F:查找
首先打开Fiddler工具,由于浏览器在请求外部资源时的默认访问路径,就是系统代理**[chrome浏览器->设置->高级->系统->打开您计算机的代理设置->可以查看代理服务器的地址和端口号],那么Fiddler直接代替该代理[工具栏->Tools->Options->connections下有一个act as system proxy on setup
选项]**,便可以实现:在启动时自动的开始代理抓包,关闭软件后这个代理通道会自动关闭。
在进行抓包操作前,首先需要了解HTTP/HTTPS协议,这里复习一点点计算机网络的知识。
HTTP协议属于应用层协议,在HTTP里面规定了我们访问网页的时候如何进行缓存,以及请求什么格式等,主要是为了让人们访问网页的时候更快,更安全,而规定了很多参数。通俗点来讲,可以认为HTTP协议是面向业务的,它决定是否传输数据,以及传输数据的方法,和数据的格式等等。(TCP/IP协议来保证连接的可靠性,保证传输的东西不被损坏)
现在我们打开fiddler,再打开CSDN看看,可以成功的获取到数据包,这里我们将text/html
格式的请求包保存到本地:
打开刚刚保存的文件可以看到,第一段是请求报文,第二段是响应报文。
我们的客户端在访问网页的时候生成这段请求报文发送给服务器,服务器接收到这段文本后进行解析。
回到HTTP概述,HTTP请求报文主要由请求行,请求头部、空一行、请求体( get请求没有请求体 )这四个部分组成:
现在我们看看fiddler中的具体请求报文:
请求行
restful
风格编码,请求方法会用到PUT替换资源
和DELETE删除资源
)请求头:表示发起请求时的一些附加信息
HOST表示主机在哪
Accept表示我想接收到什么内容,让服务器别传其他的内容回来
User-Agent表示系统和浏览器版本的一些说明
Accept-Encoding表示可接受的内容编码,比如gzip(我们在传输文件时为了节省空间,可能会压缩资源
Accept-Language表示接收的语言
这里再介绍一些其他个人认为挺重要的请求头:
Referer表示我发送请求的这个请求,来自于哪个页面,可以用来防止盗链
Authorization表示客户端提供给服务端进行权限认证的信息
Content-Type表示提交给服务器的请求体内容类型
Cache-Control表示缓存机制,比如Cache-Control: no-cache
Pragma表示防止页面被缓存,和Cache-Control: no-cache作用相同
HTTP响应报文主要由响应行,响应头、空一行、响应体这四个部分组成:
如果你对请求/响应拦截器
知识点有一定了解的话,AutoResponder
就是一种用于拦截请求的工具,它可以自定义响应。有时候我们想替换页面的资源,但是有无法对其服务器进行更改,就可以替换资源(这其实是一种自己骗自己的视觉效果,实现本地页面被替换的假象)
选择AutoResponder
,将上方的选项全部选中,然后在Rule Editor
中:第一行设置待更换元素,第二行设置目标更换元素即可。
提示:可以通过鼠标拖动的方式将左边的接口数据拖动到右边的编辑区
最终的结果是:原本服务器返回的资源,被替换为了你设置展示的资源
如果你在生活中有时会需要连接公共场合的wifi,比如图书馆wifi之类的,如果你去设置了它的代理,然后将原本的(连接wifi时会自动跳出一个网页)页面数据替换为你伪造的数据,别人看到的就会是你替换后的数据。
所以我们在外面千万不要贪图小便宜,连接陌生人的wifi : ),因为你连接上别人的wifi上网后,别人可以对你访问的页面进行抓包,然后将原本应该返回给你的数据替换为他设置的钓鱼链接。
现在站在前端开发者的角度来看,在后端接口还没有数据的时候,我通常是选择在前端代码中进行mock
模拟请求数据。现在通过Fiddler的自动响应器,我们可以这么做:
Enable rules
, Accept all CONNECTs
这两个选项一定要勾选上)Edit Response
,修改没有数据的那个请求结果,保存,重新请求即可。在了解了一些操作后娱乐一下,试试看对安卓手机进行抓包操作。
首先按照具体的配置步骤进行手机的设置,照着教程一步一步进行配置即可。
接下来我们以某分享图片的软件举例。
在打开软件后选择目标的图片,就可以看到目标图片的路径了。
我们也可以对某音的视频进行抓包处理,由于Android手机版本问题,我们可以在电脑上下载模拟器,选择<6版本的安卓系统进行安装,下载抖音软件后可以成功抓包。