如何使用Fiddler Filter与 FiddlerScript 过滤本机网络请求

简介: 网络抓包是一个很常见的需求,目前流行且持续维护,并经受了一定时间考验的工具不多,Telerik推出的免费软件Fiddler是一个非常不错的选择,本文将介绍如何在Fiddler工具中过滤请求

Fiddler的Find Session相比同类产品,功能上已经十分极致,即使不需要Filter也可以轻易抓取目标请求,但在请求繁多,监控目标流量过多的情况下,Filter不可或缺。

Fiddler具有高定制性,理论上可以拦截所有可代理请求并依特定条件过滤,但本文仅涉及常用Field的过滤:Protocol,Host,URL,Content-Type,HTTP Method。

  • Protocol
    实际上过滤Protocol基本上只相对于HTTP与HTTPS两种协议,由于HTTPS基于TLS,默认配置下Fiddler不会监听HTTPS请求,首先开启拦截HTTPS请求,如图在menu中选择Tool>Options
    Tool>Options

选中Options>HTTPS>Decrypt HTTPS traffic

Decrypt HTTPS traffic

此时操作系统将询问是否通过Fiddler的证书,同意后成功

启用成功

启用后Fiddler将同时监听HTTP与HTTPS流量。

接下来就可以做过滤的操作了,先在右侧切换到Filter界面对其进行设置:

勾选Use Filter,勾选后下面的设置才会生效:
Use Filter

此处可以设置路径包含内容,写http:就相当于过滤了HTTP协议,写https:就相当于过滤了HTTPS协议,同样也可以写域名或者具体路径,路径参数,都是可以的
image.png

  • Host
    当然如果只是设置域名或者IP主机,只需要在Hosts区域进行如下设置:
    image.png
    过滤多个Host只需用;隔开即可
    image.png

  • URL
    如果是在URL中,那么就只能设置在前面提过的地方了,Show only if contains顾名思义只显示包含内容的路径,Hide if URL contains反之隐藏包含内容的路径
    image.png
    这两项是可以同时使用的,也支持正则,但请注意正则需要以REGEX:开头。

  • Content-Type
    也可以选择Content-Type来过滤,只需要在response type and size的下拉框中选择即可,可以在里面选择各种媒体,例如选Show only IMAGE/*就是只显示图片:
    image.png

  • HTTP Method
    过滤HTTP Method是需要写脚本的,例如如果要隐藏所有HTTP Method为OPTIONS的请求,就需要打开FiddlerScript界面,找到OnBeforeRequest方法:
    image.png

OnBeforeRequest方法的最后一行追加判断:

if (oSession.HTTPMethodIs("OPTIONS")) {
   
   
    oSession["ui-hide"] = "true";
}
if (oSession.HTTPMethodIs("DELETE")) {
   
   
    oSession["ui-color"] = "red";
}

这个就非常简明,如果是OPTIONS请求就隐藏掉,如果是DELETE请求就在左侧显示为红色项。

HTTPMethodIsy()方法也可以判断其他HTTP Method,例如POST,GET,DELETE,PUT,PATCH,只要判断到了将oSession对象的ui-hide属性设为true就可以过滤掉了,也可以用ui-color标记一些特定的颜色。

当然有OnBeforeRequest()就有相对应的OnBeforeResponse()了,可以直接用这个方法修订数据返回的结果,也是只有一个Session参数。不过大多数情况下只会用到OnBeforeRequest()

总的来说,Fiddler使用C#编写,它将动态编译FiddlerScript并进行调用,实际上FiddlerScript也是一个普通的C# class,可以利用其做很多复杂的逻辑判断用来过滤请求,参数Seesion具有类索引器,取值便捷,即使不熟悉c#语法也可以轻松做过滤逻辑,设计非常周到。

本文写作于2018年12月26日发布于本人简书,于2023年7月13日进行修订发布于阿里云开发者社区。

目录
相关文章
|
Web App开发 小程序 iOS开发
Fiddler - 抓包手机App、微信小程序等网络请求
Fiddler - 抓包手机App、微信小程序等网络请求
965 0
Fiddler - 抓包手机App、微信小程序等网络请求
|
2天前
|
前端开发 安全 JavaScript
Fiddler实现 HTTP 网络抓包
Fiddler实现 HTTP 网络抓包
|
10月前
|
网络安全 Android开发
Fiddler连接手机无网络问题
苹果手机连接fiddler,访问一直没有网络,踩过的大坑,特此记录!
141 0
|
Android开发
关于Fiddler抓取安卓网络请求包方法
Fiddler抓取安卓网络请求包方法
129 0
|
监控 Java 网络架构
使用Fiddler为满足某些特定格式的网络请求返回mock响应
使用Fiddler为满足某些特定格式的网络请求返回mock响应
使用Fiddler为满足某些特定格式的网络请求返回mock响应
|
监控 Java
使用Fiddler监控使用RestTemplate发送网络请求的Java应用
使用Fiddler监控使用RestTemplate发送网络请求的Java应用
使用Fiddler监控使用RestTemplate发送网络请求的Java应用

热门文章

最新文章