注意:本文不涉及HTTPS的场景

最近在弄公众号开发,除了主动去调公众号接口,还存在公众号后台要反过来调你的情形,攻受转换一线间。对于回调的情况,想要知道对方是怎样来请求的很有必要。此前经常用Fiddler抓取从本机出去的请求,非常好用,现在就想能不能反过来,让它抓取进来的请求。搜索一番,答案是肯定的,而且官网就有文档说这事:

http://docs.telerik.com/fiddler/configure-fiddler/tasks/usefiddlerasreverseproxy

本文实际上就是基于上述文档的说明。

从文档标题就能看出,实现反抓的原理本质上是把Fiddler配置成一个反向代理服务(Reverse Proxy)。关于反向代理是怎么一回事请读者自行了解,本文不赘述,简单理解就是让真实提供服务的网站躲在代理服务的背后,请求首先是到代理,再由代理转发给背后的网站,再把网站的响应返回出去。基于这个原理,作为代理的Fiddler当然就能拿到往返的数据。

文档中说了三种做法来配置反向代理,但其实后面两种并没有方式上的区别,只是一个端口谁来用的抉择问题~下面会讲到,所以其实只有两种方法:

一、注册表指定端口法(不推荐,有弊端)

1、在HKEY_CURRENT_USER\SOFTWARE\Microsoft\Fiddler2下新增DWORD型的键值ReverseProxyForPort,十进制方式输入要抓包的站点的端口,比如站点端口是80,弄完如图:

2、打开Fiddler,菜单Tool > Options,Connections页,确保Allow remote computers to connect选项勾选。如图:

上面那个8888是Fiddler的web服务端口。重启Fiddler,并保持捕获状态,此时从本机访问http://127.0.0.1:8888就能访问到端口为80那个站点,同时可以看到Fiddler有捕获到刚刚对80站点的请求。至于Allow...这个选项,是为了让别的电脑能访问本机的8888端口,不勾的话,外部无法通过【http://局网or外网IPor域名:8888】访问进来~当然,在此之前还要记得在网关把8888映射出去。

注意:这个方法有个局限,就是只能以http://127.0.0.1或localhost或局网IP或计算机名:8888发起请求,不能是公网IP和域名,否则会造成循环捕获,永远不会返回响应,只能关闭Fiddler才能消停。

二、脚本改写端口法

方法是通过菜单Rules > Customize Rules打开自定义脚本,在其中找到OnBeforeRequest方法,在里面添加如下逻辑:

if (oSession.port == ) {
oSession.port = ;
}

改好的脚本如图:

脚本所用的类库是.Net无疑,但语法像C#又不完全是,应该有名堂,还请路过朋友指教。注意上述逻辑并不是照搬官方文档,文档中的逻辑与域名攸关,我改了一下,只关注端口,总之目的就是把本来对8888端口的请求修改为对目标站点的请求,本例假定目标站点的端口是80。

同样确保方法一中Allow...选项勾选。重开Fiddler并保持捕获,此时就能无局限的访问http://*:8888了,同时可以看到捕获成果。

官方文档中列出的第3种做法,其实只是替换一下端口,上面的例子都是要求请求方把请求地址由原来的端口改为8888,但有些时候请求方是你叫不动的,比如微信公众号的网页授权回调url,就要求不能带端口号,你不可能填个http://xxx:8888上去,所以这就要让Fiddler来占用80端口,同时把网站的端口改成别的,最后仍然使用脚本法重写端口。

-文毕-

【手记】让Fiddler抓取入站请求,或者叫用Fiddler做反向代理的更多相关文章

  1. fiddler抓取手机https请求详解

    前言: Fiddler是在 windows下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析,fiddler默认只能抓取http请求,需要配置和 ...

  2. Jmeter Web 性能测试入门 (二):Fiddler 抓取 http/https 请求

    jmeter自带了拦截request的功能,并且也有对应的tool:badboy 可以用.但由于我经常做移动端的项目,个人还是习惯用fiddler来收集request. 官网下载并安装Fiddler ...

  3. fiddler抓取https的请求详解

    本文主要说明了自己在设置fiddler抓取https过程中所遇到的问题及解决步骤,特别是fiddler在设置证书的环节遇到的各种奇葩问题,特此分享! 声明:本文为原创文章,转载请注明来源:https: ...

  4. fiddler 抓取手机app请求包

    今天心血来潮,也不知道怎么了,想着抓抓我们公司手机app的包看看,研究研究我们公司的接口,哎,我们api文档,我自己抓包看看吧.工具选择fiddler,理由免费,用着也舒服,手机设备 iPhone6 ...

  5. Fiddler 抓取 app 网络请求数据

    通过设置代理在同一个路由器下可以通过 Fiddler 实现抓取 app 的网络数据 步骤如下: 手机(Android ,iOS 都可以)和 PC 连到同一个路由器 对手机连接的 WIFI 设置代理,代 ...

  6. 使用Fiddler抓取IOS_APP的请求

    首先在地址https://www.telerik.com/fiddler 下载我们需要的fiddler 在新窗口中写上一些信息然后点击[Download for Windows]进行下载: 安装成功后 ...

  7. Fiddler抓取手机Https请求

    下载并安装Fiddler证书生成器 1.打开Fiddler—>Tools—>Telerik Fiddler Options... 2.Connections选项中勾选Allow remot ...

  8. 通过fiddler抓取IDEA的请求

    2019独角兽企业重金招聘Python工程师标准>>> 因为fiddler默认是代理的8888端口,所以设置一下IDEA的请求使用本地的8888作为代理发出. 1."EDI ...

  9. 如何让Fiddler可以抓取https的请求

    转自:https://jingyan.baidu.com/article/00a07f38bb4f4682d028dcd2.html Fiddler通过在本机开启了一个http的代理服务器来进行htt ...

随机推荐

  1. JavaScript设计模式--桥梁模式--XHR连接队列

    针对该模式的例子现在不是很理解,写下来慢慢熟悉. 们要构建一个队列,队列里存放了很多ajax请求,使用队列(queue)主要是因为要确保先加入的请求先被处理.任何时候,我们可以暂停请求.删除请求.重试 ...

  2. Django内置的通用类视图

    1.ListView 表示对象列表的一个页面. 执行这个视图的时候,self.object_list将包含视图正在操作的对象列表(通常是一个查询集,但不是必须). 属性: model: 指定模型 te ...

  3. Spring 源码剖析IOC容器(一)概览

    目录 一.容器概述 二.核心类源码解读 三.模拟容器获取Bean ======================= 一.容器概述 spring IOC控制反转,又称为DI依赖注入:大体是先初始化bean ...

  4. 使用vim编写hexo文档,并用ultisnips/snipmates/snippets插件补全

    作为一个vim使用者,编写markdown文档时若不能用vim这怎么能受的了! 下面是我编写markdown的时候用到的插件 Plugin 'Markdown'Plugin 'Markdown-syn ...

  5. OOAD-设计模式(二)之GRASP模式与GOF设计模式概述

    一.GRASP模式(通用责任分配软件模式)概述 1.1.理解责任 1)什么是责任 责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为.数据.对象的创建等 知道责任——表示知道什么 行为责任 ...

  6. Python列表的增删改查排嵌套特殊输出格式

    Python列表的增删改查排嵌套特殊输出格式 一.列表的样子: a = ['q' , 'w' , 'e ', 'r','t'] a为列表名,[ ]为列表内容,' '为列表内的元素,'q'为a[0] 二 ...

  7. 相对定位的div没有出现纵向滚动条

    在一个相对定位的div中绝对定位很多html元素,纵向没有滚动条出现.原因:我们期望作为原点的点在窗口原点的下方,但是滚动条以窗口原点作为原点,所以没有出现滚动条.解决:在div外面再套一个div,o ...

  8. 一台服务部署多个tomcat注意事项

    第一步  添加tomcat环境变量 # vim /etc/profile加入下代码 # TOMCAT ATALINA_BASE=/usr/local/tomcat8CATALINA_HOME=/usr ...

  9. Stars(二维树状数组)

    Stars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/65536 K (Java/Others) Total Submiss ...

  10. Problem I

    Problem Description Queues and Priority Queues are data structures which are known to most computer ...