如何在 Fiddler 中修改请求?

How to modify a request in Fiddler?

我正在寻找一种简单的方法来拦截 Web 请求并使用 修改请求的内容(主要是 POSTs)提琴手

这是为了测试server-side验证。

我必须使用 Fiddler,但是我还没有找到一个好的简单方法。

有几种记录的方法可以编写 脚本 来拦截流量并更改 headers,但我想在不编写脚本的情况下这样做 - 这个工具需要由测试人员使用和 writing/modifying 脚本一直被不同的测试人员使用可能很烦人。

示例:

带有 2 个参数的简单 POST:

field1=foo, 
field2=bar

我想拦截请求,将field2的值修改成bañ之类的(注意我的ñ,案例是无效,这就是我想要测试的)。

好的,发布我从以下 youtube 视频拼凑而成的答案:

Tampering Client Requests and Server Responses with Fiddler


  1. 启动fiddler(我用的是Fiddler 4)

  2. 您会注意到它会拦截通过所有浏览器和其他应用程序的所有流量

  3. 设置过滤器 - 这将使您能够只查看您感兴趣的数据

    1. 在右侧,单击过滤器选项卡
    2. 勾选'Use Filters'
    3. 在主机上,使用 'Show only the following Hosts'
    4. 在下面的文本框中,输入您要测试的主机。在我们的测试环境中,输入以下内容:testing.internalsite.com;
    5. 在名为 'Breakpoints' 的部分中,勾选 'Break request on POST'
  4. 拦截请求

    1. 在您的浏览器中,导航到您正在测试的页面。在我们的例子中,这是我们将进行服务器端验证测试的欢迎页面:https://testing.internalsite.com/yourapp/welcome.do
    2. 通过点击工具栏中的 'X' 并选择 'Remove all' 来清除所有现有的记录请求。
    3. 在您的浏览器中,将数据放入您有兴趣测试的表单中,然后点击提交。这是您将使用 fiddler 更改的有效数据(通过客户端验证)。
    4. 在Fiddler 中,您会看到带有红色图标的请求。右侧点击请求加载详情
    5. 在检查器选项卡上,然后是 WebForms 选项卡,您可以修改提交的表单的参数。根据测试更改数据。
    6. 点击 'Run to completion' 按钮
  5. 验证您的响应是否正确 - 如果您正在测试服务器端验证,通常会出现某种错误消息

我使用 fiddler 4.6.3。如果您提交的是网络表单,您可以试试这个。

请注意提交表单时的 post 请求。让该请求保留在提琴手中。让我们在 Fiddler 中修改请求。

1 - 右键单击​​请求 > 选中 "unlock for editing"。

2 - 检查器选项卡 > 在正文部分修改表单字段,例如用户名、密码等。

3 - 右键单击​​请求 > 重播 > 重新发出请求。

完成!这种方法的唯一问题是您修改了旧请求。在 Charles 代理中,这是通过 2-3 次点击完成的,而在 Fiddler 中则需要多次点击。另外,您不必弄乱旧请求。