Fiddler中文版脚本编辑器完全指南:自定义规则和过滤器

Fiddler中文版脚本编辑器完全指南:自定义规则和过滤器

【免费下载链接】zh-fiddlerFiddler Web Debugger 中文版项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler

Fiddler Web Debugger 中文版是一款强大的Web调试工具,其内置的脚本编辑器允许用户通过自定义规则和过滤器来扩展功能,满足个性化调试需求。本文将详细介绍如何使用Fiddler中文版的脚本编辑器,从基础操作到高级规则编写,帮助新手用户快速掌握自定义调试技巧。

认识Fiddler脚本编辑器

Fiddler脚本编辑器是修改和扩展Fiddler功能的核心工具,通过编写C#或JavaScript脚本,可以实现请求/响应拦截、数据修改、自动化测试等高级功能。脚本文件位于项目的Scripts目录下,主要包含以下两个示例文件:

  • SampleRules.cs:C#版本的规则示例,支持Windows和Mono平台
  • SampleRules.js:JavaScript版本的规则示例,主要用于Windows平台

打开脚本编辑器的两种方式

  1. 启动Fiddler后,点击菜单栏工具 > Fiddler Script
  2. 直接运行项目根目录下的Fiddler ScriptEditor 编辑器绿化工具.exe

脚本基础结构解析

Fiddler脚本采用事件驱动模型,核心是Handlers类中的几个关键函数,通过重写这些函数可以实现对HTTP请求/响应的控制:

核心事件函数

  • OnBeforeRequest:请求发送到服务器前触发,可用于修改请求头、URL重写等
  • OnBeforeResponse:服务器响应返回客户端前触发,可用于修改响应内容、过滤响应等
  • OnExecAction:处理QuickExec命令行指令,实现自定义快捷操作

示例:隐藏304响应

SampleRules.js中,以下代码实现了隐藏304 Not Modified响应的功能:

public static RulesOption("隐藏 304s") BindPref("fiddlerscript.rules.Hide304s") var m_Hide304s: boolean = false; static function OnBeforeResponse(oSession: Session) { if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } }

实用自定义规则示例

1. 模拟网络延迟(调制解调器速度)

通过设置请求/响应延迟,可以模拟低速网络环境,测试应用性能:

if (m_SimulateModem) { // 上传延迟:每KB延迟300ms oSession["request-trickle-delay"] = "300"; // 下载延迟:每KB延迟150ms oSession["response-trickle-delay"] = "150"; }

在Fiddler界面中,通过规则 > 性能 > 模拟调制解调器速度菜单启用此功能。

2. 修改User-Agent伪装浏览器

脚本编辑器预置了25种常见User-Agent,可通过规则菜单快速切换:

RulesString("&用户代理", true) RulesStringValue(0,"Netscape &3", "Mozilla/3.0 (Win95; I)") RulesStringValue(1,"WinPhone8.1", "Mozilla/5.0 (Mobile; Windows Phone 8.1; ...") // 更多浏览器类型... public static var sUA: String = null;

使用时只需在规则 > 用户代理子菜单中选择目标浏览器即可。

3. 自动响应认证请求

配置自动认证可避免重复输入用户名密码:

if (m_AutoAuth) { // 使用当前用户凭据自动响应认证请求 oSession["X-AutoAuth"] = "(default)"; }

通过规则 > 自动验证菜单启用该功能。

高级过滤器编写技巧

URL替换与重定向

通过urlreplace命令可以临时修改请求URL,常用于测试环境切换:

case "urlreplace": if (sParams.Length<3) {gs_ReplaceToken=null; return false;} gs_ReplaceToken = sParams[1]; gs_ReplaceTokenWith = sParams[2].Replace(" ", "%20"); FiddlerObject.StatusText="替换 [" + gs_ReplaceToken + "] 为 [" + gs_ReplaceTokenWith + "]"; return true;

使用方法:在QuickExec框中输入urlreplace 旧字符串 新字符串

请求断点设置

通过脚本可以针对特定URL或状态码设置断点,方便调试:

if ((null!=bpRequestURI) && oSession.uriContains(bpRequestURI)) { oSession["x-breakrequest"]="uri"; }

常用断点命令:

  • bpu 包含字符串:对包含指定字符串的请求设置断点
  • bps 状态码:对指定响应状态码设置断点
  • bpm POST:对POST方法设置断点

脚本调试与管理

脚本重置与重载

当脚本编辑出现错误时,可以通过以下方式恢复:

  1. 点击工具 > 重置脚本
  2. 直接删除Documents\Fiddler2\Scripts\CustomRules.js文件,重启Fiddler会自动生成默认脚本

常用工具辅助

项目提供了多个辅助工具,位于Tools目录下:

  • Brotli.exe:Brotli压缩工具
  • PngDistill.exe:PNG图片优化工具
  • Zopfli.exe:Zopfli压缩工具

这些工具可在脚本中通过System.Diagnostics.Process.Start()调用,实现自动化资源处理。

总结与扩展

Fiddler脚本编辑器是提升Web调试效率的强大工具,通过本文介绍的基础规则和示例,您可以实现请求过滤、响应修改、网络模拟等实用功能。对于高级用户,还可以探索更多高级用法:

  • 编写自定义UI选项卡(通过BindUITab属性)
  • 创建自定义上下文菜单(通过ContextAction属性)
  • 实现复杂的请求路由和负载测试

建议从修改示例规则开始,逐步掌握脚本编写技巧,最终打造适合自己工作流程的调试环境。

【免费下载链接】zh-fiddlerFiddler Web Debugger 中文版项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考