Fidder AutoResponse匹配规则

本文详细介绍了在Fiddler中使用的各种搜索匹配规则,包括基本搜索、精确匹配、排除匹配及正则表达式匹配等,解释了每种匹配方式的特点及应用场景。

基本规则

前缀为“EXACT:”表示完全匹配(大小写敏感)
无前缀表示基本搜索,表示搜索到字符串就匹配
前缀为“NOT:”表示发现就不匹配
前缀为“REGEX:”表示使用正则表达式匹配
前缀为“REGEX:(?insx)”表示匹配方式其中:
i表示不区分大小写;
n表示指定的唯一有效的捕获是显式命名或编号的形式;
s表示单行模式;
x表示空格说明的;


详细说明:
无前缀:(搜索到字符串就匹配,不区分大小写)
rulesmatch
*http://www.example.com/Path1/query=example
EXAMPLEhttp://www.example.com/Path1/query=example
path1http://www.example.com/Path1/query=example
queryhttp://www.example.com/Path1/q=Query

not:发现就不匹配

rulesmatch
NOT:EXAMPLEhttp://www.test.com/Path1/query=test
NOT:path1http://www.example.com/Path2/query=example
NOT:queryhttp://www.example.com/Path1/q

Exact:精确匹配(区分大小写)

rulesmatch
EXACT:http://www.example.com/pathhttp://www.example.com/path
EXACT:http://www.example.com/pathhttp://www.example.com/Path (不匹配- 大小写不一样)
EXACT:http://www.example.com/pathhttp://www.example.com/path/q=Query (不匹配- 子字符串不一样)

正则表达式:
Fiddler支持以regex:为前缀的正则表达式语法,使用.+匹配一个或多个字符,使用.*匹配0个或多个字符,使用^匹配字符串开始位置,使用$匹配字符串结尾位置。

rulesmatch
regex:.+http://www.example.com/Path1/query=example
regex:.+.jpg.*http://www.example.com/Path1/query=foo.jpg&bar http://www.example.com/Path1/query=example.jpg
regex:.+.jpghttp://www.example.com/Path1/query=foo.jpg&bar (No Match - improper ending)
http://www.example.com/Path1/query=example.jpg
regex:.+.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) http://www.example.com/Path1/query=example.gifhttp://www.example.com/Path1/query=example.Gif (No Match - mismatched case) http://www.example.com/Path1/query=example.bmp
regex:(?insx).+.(jpg|gif|bmp)$http://www.example.com/Path1/query=foo.bmp&bar (No Match - improper ending) http://www.example.com/Path1/query=example.gifhttp://www.example.com/Path1/query=example.Gif http://www.example.com/Path1/query=example.bmp
Fiddler 中,可以通过正则表达式来匹配请求路径,以便进行过滤、修改或分析特定的网络请求。Fiddler 提供了强大的脚本功能,允许用户通过 JScript.NET 或 C# 编写自定义规则,结合正则表达式来实现对请求路径的匹配。 ### 使用 Fiddler 的 `OnBeforeRequest` 事件匹配请求路径 可以在 Fiddler 的 `CustomRules.js` 文件中编写自定义脚本,利用 `OnBeforeRequest` 事件处理请求,并结合正则表达式进行路径匹配。例如,以下代码展示了如何使用正则表达式来匹配特定路径的请求: ```csharp static function OnBeforeRequest(oSession: Session) { // 匹配包含 "/api/" 的请求路径 var pattern = "/api/"; if (oSession.url.IndexOf(pattern) >= 0) { FiddlerObject.log("匹配到请求路径: " + oSession.url); } } ``` 如果希望使用更灵活的正则表达式,可以改写为如下形式: ```csharp import System.Text.RegularExpressions; static function OnBeforeRequest(oSession: Session) { // 使用正则表达式匹配以 "/api/" 开头的路径 var pattern = "^https?://[^/]+/api/.*$"; var match = Regex.Match(oSession.fullUrl, pattern); if (match.Success) { FiddlerObject.log("正则匹配成功: " + oSession.fullUrl); } } ``` ### 使用正则表达式进行路径替换或重定向 除了匹配请求路径,还可以结合正则表达式对请求路径进行替换。例如,可以将某个路径重定向到本地文件或另一个服务: ```csharp static function OnBeforeRequest(oSession: Session) { // 将 "/old-api/" 替换为 "/new-api/" var pattern = "/old-api/(.*)$"; var replacement = "/new-api/$1"; oSession.fullUrl = Regex.Replace(oSession.fullUrl, pattern, replacement); } ``` ### 在 Fiddler 的“Filters”选项卡中使用正则表达式 Fiddler 的“Filters”选项卡支持通过“Use Filters”功能设置请求路径的过滤规则。虽然不能直接输入正则表达式,但可以通过设置“Host”或“URL”的通配符匹配来实现类似效果。如果需要更复杂的匹配逻辑,建议使用脚本方式进行处理。 ### 示例:匹配特定章节页面的请求 假设目标是匹配类似 `http://m.mingchaonaxieshier.com/hong-wu-da-di-01.html` 的请求,可以使用如下正则表达式[^3]: ```csharp var pattern = "^http://m\\.mingchaonaxieshier\\.com/hong-wu-da-di-\\d+\\.html$"; var match = Regex.Match(oSession.fullUrl, pattern); if (match.Success) { FiddlerObject.log("匹配到特定章节页面: " + oSession.fullUrl); } ``` 该正则表达式确保匹配以 `hong-wu-da-di-` 开头、后接数字和 `.html` 结尾的 URL。 ### 小结 Fiddler 支持通过脚本结合正则表达式来匹配请求路径,适用于过滤、修改或分析特定类型的请求。通过 `OnBeforeRequest` 事件和 `Regex` 类,可以灵活地实现复杂的路径匹配逻辑。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值