百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

【基础】Fiddler基本信息

ninehua 2024-11-17 19:53 106 浏览


一、常Fiddler网站:

Fiddler官网:

https://www.telerik.com/fiddler

Fiddler Forum:

https://www.telerik.com/forums/fiddler?searchText=winconfig

Fiddler 插件下载:

https://www.telerik.com/fiddler/add-ons

二、常见的主流抓包工具对比:

Firebug:是 Mozilla Firefox 网页浏览器扩展,也是一个网页开发工具。

httpWatch:是强大的网页数据分析工具,集成在Internet Explorer工具栏。包括网页摘要Cookies管理,缓存管理,消息头发送/接受,字符查询,POST 数据和目录管理功能,报告输出,HttpWatch 是一款能够收集并显示深层信息的软件。

charles:界面相较与fiddler要简洁,主要用于Mac平台。

Wireshark:网络包分析工具,也是通用抓包工具,抓取信息量庞大且详细;是需要过滤信息才能得到有用信息,基本所有的通信抓包都可以抓取。

Fiddler :使用比较简单,很好用的Web调试工具之一,记录所有客户端和服务器的http和https请求,允许监视,设置断点,甚至修改输入输出数据等。

三、Fiddler简介

1、背景

Fiddler是C#语言开发;http协议调试代理工具,能够记录电脑与互联网之间http通讯,同时可设置断点,查看所有通讯的Fiddler数据(指cookie,html,js,css等文件)。

2、Fiddler原理

Fiddler是以代理web服务器的形式工作的,在客户端和服务器之间建立一个代理服务器,监听客户端发出的请求和服务器返回的响应结果,默认端口8888。

客户端将请求数据发送出去后,会先经过代理服务,代理服务可以对请求处理再发送给服务器;

服务器的响应数据返回给客户端,也会先通过代理服务,也可做相应的修改,返回给客户端。

工作于七层中的应用层,也可以捕获通过的HTTP(S)请求。

3、抓取HTTPS的解析过程

解析过程如下:

客户端请求建立HTTPS连接,发送客户端支持的加密协议和版本列表等信息给服务器;

Fiddler接受客户端的请求并伪装成客户端发送相同的请求给Web服务器;

Web服务器收到Fiddler的请求后,从请求中筛选出合适的加密协议并返回服务器CA证书,证书中包含公钥信息;

Fiddler收到服务器响应之后,保存服务器证书并自签名一个证书,伪装成服务器将该证书下发给客户端;

客户端验证证书的合法性(Fiddler能否抓取到HTTPS报文关键就看这一步了);

客户端生产对称密钥并使用自签名证书的公钥进行加密,发送给服务器;

Fiddler拦截客户端的请求之后,使用私钥解密该报文,获取对称密钥并使用CA证书的公钥加密,再发送给Web服务器;

Web服务器接收到客户端加密后的对称密钥,采用私钥解密,并使用对称密钥解密测试数据传给客户端;

Fiddler使用前面获取的对称密钥解密报文;

客户端验证数据无误后,HTTPS连接建立完成,此时客户端开始向服务器发送使用对称密钥加密的业务数据;

Fiddler使用前面获取的对称密钥解密客户端发送的数据并重新加密转发给客户端。


四、安装

1、windows安装:

官网下载后,直接打开安装即可。

2、Mac 安装:

相关链接:https://cloud.tencent.com/developer/article/1342186

第一步:先安装Mono安装

首先,Mac下需要使用.Net编译后的程序,需要用到跨平台的方案Mono(现阶段微软已推出跨平台的方案.Net Core,不过暂时只支持控制台程序)。安装程序可以从http://www.mono-project.com/download/#download-mac地址下载。

安装完后,在Terminal里执行以下命令:

/Library/Frameworks/Mono.framework/Versions/<Mono Version>/bin/mozroots --import --sync

此步是为了从Mozilla LXR上下载所有受信任的root证书,存于Mono的证书库里。

root证书能用于请求https地址。

接下来如果想要运行Fiddler,还需要把Mono加入到环境变量中。

编辑.bash_profile文件:

sudo vi ~/.bash_profile

加入文本:

export MONO_HOME=/Library/Frameworks/Mono.framework/Versions/5.0.1

export PATH=$PATH:$MONO_HOME/bin

保存后重新打开Terminal,Mono环境已装好。

第二步:Fiddler的安装

从Fiddler官网https://www.telerik.com/download/fiddler下载fiddler-mac.zip的压缩包。

解压到非中文字符的路径下。

Fiddler运行

打开Terminal,进入到刚才解压的Fiddler路径,执行命令运行:

sudo mono Fiddler.exe

五、前端跨域

1、拦截流程

总结:没有设置允许跨域访问,但是依然请求到了数据。

这说明跨域访问的限制并不是浏览器限制发送请求,而是浏览器阻止了请求后数据的加载渲染。

1)、请求允许跨域的访问的url

响应头带有"Access-Control-Allow-Origin","*",告知浏览器可以跨域访问。

浏览器收到response信息,并且检查到响应头中有"Access-Control-Allow-Origin", “*”,因此将数据展示出来。

2)、请求不允许跨域的访问的url

响应头不带有"Access-Control-Allow-Origin","*",没有表示能够跨域访问的请求头信息,所以浏览器不可以跨域访问。

页面收到了信息,但是没有检查到响应头中有允许跨域访问的设置,因此没有对数据进行加载渲染。并且报出下面的异常:No 'Access-Control-Allow-Origin' header ispresent on the requested resource。

2、流程总概:

前端跨域

跨域的来源是同源策略,为什么要有同源策略也是为了安全着想,防止遭受一些网络攻击,比如:csrf(跨站请求伪造)等。

一句话总结:跨域的拦截不是浏览器在请求前拒绝访问不同源URL而是在请求非同源URL后拒绝加载数据!!!

浏览器发送跨域请求

接收response数据

看看响应头是否带有"Access-Control-Allow-Origin","*"这类允许跨域的字样

检查响应头

如果响应头中没有允许跨域访问的配置,则请求到的数据不进行加载,并报出响应异常

如果响应头中有允许跨域访问的设置,正常加载数据

相关推荐

让Mac也能读取Android设备文件(mac系统能读取win的文件么)

由于苹果的iOS和谷歌的Android系统属于竞争关系,因此苹果的电脑系统MacOSX并不支持MTP协议,这就使得通过USB将Android设备连接到Mac电脑上无法识别,更别说读取里面的文件了。...

抛弃Windows吧!谷歌推免费Chrome系统,一个U盘就搞定

在目前的个人电脑上,最主流的系统当然是Windows,不过除了Windows之外,我们也可以选择购买苹果的电脑,使用苹果的MacOS系统。不过除了苹果和微软的系统之外,实际上谷歌也有自己用于个人电脑...

安卓版Apple Music应用正式上架Google Play

IT之家讯11月11日消息,苹果今天正式推出了安卓版AppleMusic应用(测试版),用户可在谷歌应用商店GooglePlay进行下载。AppleMusic最初只提供给Mac、iPhone和...

Mac 基于HTTP方式访问下载共享文件,配置共享服务器

方法一:使用Python的SimpleHTTPServer进行局域网文件共享Mac自带Python,所以不需要安装其他软件,一条命令即可1):进入需要共享的文件夹,如Public文件夹cd/Us...

谷歌 Gmail 现可设置为 iOS 14/iPadOS 14 默认邮件应用

IT之家9月22日消息据外媒MacRumors报道,苹果iOS14与iPadOS14允许用户将第三方应用设置为iPhone和iPad的默认浏览器应用。目前,用户还可以将第三方...

终于免费了!谷歌地球专业版下载(谷歌地球专业版多少钱)

IT之家(www.ithome.com):终于免费了!谷歌地球专业版下载IT之家讯1月31日消息,谷歌地球专业版GoogleEarthPro现在完全免费了。在此之前,要使用这款专业版的谷歌地球需要...

谷歌计划将于11月发布64位Mac版Chrome

投稿by:hnn072来源:威锋网PostTime:2014-09-1523:51:55以下为文章全文:威锋网9月15日消息,日前,谷歌公司在官方博客中正式宣布,谷歌将在今年11月发布的...

Google首次推出beta版的64位Mac Chrome浏览器

在宣布Windows版的64位Chrome进入稳定版(Chrome37)2天之后,Google刚刚又发布38版的Chromebeta版,除了增加新的用户档案切换界面并引入G...

YouTube应用下载全攻略:安卓、iOS及视频下载指南

#哪些网站帮你打开了新世界的大门?#YouTube是全球最大的视频分享平台,拥有数十亿用户。它允许用户上传、分享和观看视频,涵盖娱乐、教育、新闻、音乐、博客、游戏等各类视频。通常,您可以使用You...

MaterialDesign来袭!iOS谷歌浏览器更新!

今日,谷歌发布了最新的iOS版Chrome浏览器应用升级,在新版本中该应用添加了最新的MaterialDesign界面,并增加了在iOS设备和Mac中快速无缝切换浏览内容的Handoff特性支持。最...

谷歌为Canary/Dev分支Mac版Chrome浏览器64位支持

【巴士速递·移动情报站】上周,谷歌为Windows7和8系统用户推出了64位版本的Chrome浏览器Beta测试版。现在,谷歌悄悄的为Canary和Dev分支Mac版Chrome浏览器增加了64位支...

谷歌发布64位Chrome for Mac 首个测试版

投稿by:水木之向来源:威锋网PostTime:2014-08-2921:52:52以下为文章全文:威锋网8月29日消息,在发布64位ChromeforWindows之后,谷歌日...

Google Stadia首发支持设备中确认有Pixel 4和Pixel 2系列

2019-10-3110:20谷歌今天宣布扩充GoogleStadia的首发支持设备规模,继Pixel3系列、Pixel3a系列之外还添加了Pixel4系列和Pixel2系列四款机型。据...

64位谷歌浏览器Chrome 11月登陆苹果OS X

IT之家(www.ithome.com):64位谷歌浏览器Chrome11月登陆苹果OSX谷歌将于11月正式发布非beta版的、苹果OSX系统的64位谷歌浏览器,谷歌于一个月前曾推出beta版的...

外媒:谷歌推出了搭载苹果M1芯片Mac的Chrome版本

据外媒TheVerge消息,谷歌日前为苹果的ArmMacs发布了Chrome的本地版本。不过该版本原本是在周二开始推出,但由于意外崩溃而暂停了。Chrome产品经理MarkChang表示,谷歌计...