Fiddler修改请求或者响应

FiddlerScript允许你在Fiddler Classic中修改Web请求和响应。你可以通过添加规则到OnBeforeRequestOnBeforeResponse函数来实现自定义修改。
在这里插入图片描述

选择哪个函数取决于你的代码使用的对象类型:

  • OnBeforeRequest在每个请求之前被调用。
  • OnBeforeResponse在每个响应之前被调用。

需要注意的是,在OnBeforeRequest中无法访问响应对象,因为此时它们尚未创建。同时,虽然可以在OnBeforeResponse中使用请求对象,但是对这些对象所做的任何更改都不会被服务器看到,因为它已经接收了请求。

下面是一些示例操作,你可以使用FiddlerScript来执行:

  • 添加请求头oSession.oRequest["NewHeaderName"] = "New header value";
  • 删除响应头oSession.oResponse.headers.Remove("Set-Cookie");
  • 改变请求页面if (oSession.PathAndQuery=="/version1.css") { oSession.PathAndQuery="/version2.css"; }
  • 重定向所有请求至另一服务器的相同端口if (oSession.HostnameIs("www.bayden.com")) { oSession.hostname="test.bayden.com"; }
  • 重定向特定端口的所有请求至另一服务器的不同端口if (oSession.host=="www.bayden.com:8080") { oSession.host="test.bayden.com:9090"; }
  • 重定向所有请求至另一服务器,包括HTTPS隧道if (oSession.HTTPMethodIs("CONNECT") && (oSession.PathAndQuery == "www.example.com:443")) { oSession.PathAndQuery = "beta.example.com:443"; }
  • 模拟Windows HOSTS文件,指向不同的IP地址if (oSession.HostnameIs("subdomain.example.com")){ oSession.bypassGateway = true; oSession["x-overrideHost"] = "128.123.133.123"; }
  • 重定向特定页面的请求至另一服务器if (oSession.url=="www.example.com/live.js") { oSession.url = "dev.example.com/workinprogress.js"; }
  • 阻止HTTP Cookies上传oSession.oRequest.headers.Remove("Cookie");
  • 解压和取消分块HTTP响应oSession.utilDecodeResponse();
  • 在HTML中搜索和替换if (oSession.HostnameIs("www.bayden.com") && oSession.oResponse.headers.ExistsAndContains("Content-Type","text/html")){ oSession.utilDecodeResponse(); oSession.utilReplaceInResponse('<b>','<u>'); }
  • HTML中不区分大小写的搜索if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "text/html") && oSession.utilFindInResponse("searchfor", false)>-1){ oSession["ui-color"] = "red"; }
  • 移除所有DIV标签及其内容if (oSession.oResponse.headers.ExistsAndContains("Content-Type", "html")){ oSession.utilDecodeResponse(); var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes); var oRegEx = /<div[^>]*>(.*?)<\/div>/gi; oBody = oBody.replace(oRegEx, ""); oSession.utilSetResponseBody(oBody); }
  • 模拟GoogleBot Web爬虫oSession.oRequest["User-Agent"]="Googlebot/2.X (+http://www.googlebot.com/bot.html)";
  • 请求希伯来语内容oSession.oRequest["Accept-Language"]="he";
  • 拒绝CSS请求if (oSession.uriContains(".css")){ oSession["ui-color"]="orange"; oSession["ui-bold"]="true"; oSession.oRequest.FailSession(404, "Blocked", "Fiddler Classic blocked CSS file"); }
  • 模拟HTTP基本认证(要求用户在显示网页内容前输入密码):if ((oSession.HostnameIs("www.example.com")) && !oSession.oRequest.headers.Exists("Authorization")){...}
  • 响应请求时使用\Captures\Responses文件夹中的文件if (oSession.PathAndQuery=="/version1.css") { oSession["x-replywithfile"] ="version2.css"; }

这些脚本示例可以帮助你根据需求修改网络流量。请确保在实施这些修改时考虑所有相关的安全性和功能影响。

相关推荐

  1. Spring Cloud Gateway 修改请求体、响应

    2024-07-22 05:12:03       46 阅读
  2. http的请求头和响应头安全漏洞bug修改

    2024-07-22 05:12:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 05:12:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 05:12:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 05:12:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 05:12:03       55 阅读

热门阅读

  1. 公式推导类

    2024-07-22 05:12:03       17 阅读
  2. 【C++】C++内存泄漏介绍及解决方案

    2024-07-22 05:12:03       15 阅读
  3. 后台接口的配置

    2024-07-22 05:12:03       15 阅读
  4. Optional 中 map 和 flatMap 区别是啥?

    2024-07-22 05:12:03       14 阅读
  5. 实习手计(4):月末碎碎念!

    2024-07-22 05:12:03       12 阅读
  6. Nginx详细配置(最佳实践)

    2024-07-22 05:12:03       17 阅读
  7. 信息系统安全保护等级调整的流程

    2024-07-22 05:12:03       15 阅读
  8. Netty SSL/TLS

    2024-07-22 05:12:03       19 阅读
  9. C语言排序算法

    2024-07-22 05:12:03       12 阅读
  10. 如何使用Python进行数据分析

    2024-07-22 05:12:03       17 阅读
  11. filebeat把日志文件上传到Es中配置(ES8版本)

    2024-07-22 05:12:03       13 阅读
  12. 使用 node --inspect 命令调试js文件执行

    2024-07-22 05:12:03       15 阅读