Fiddler如何捕获PHP请求参数?

99ANYc3cd6
预计阅读时长 12 分钟
位置: 首页 参数 正文
  1. 配置 Fiddler:让它能捕获 HTTPS 流量。
  2. 捕获请求:在浏览器中操作,让 PHP 脚本执行。
  3. 分析请求:在 Fiddler 中查看请求的详细信息,包括参数。
  4. 修改和重发请求:修改参数,并发送请求到服务器进行测试。

第 1 步:配置 Fiddler(关键:捕获 HTTPS)

现代网站大多使用 HTTPS,Fiddler 默认无法解密和查看 HTTPS 流量,所以这一步是必须的。

fiddler php请求参数
(图片来源网络,侵删)
  1. 打开 Fiddler
  2. 点击顶部菜单栏的 Tools -> Options...
  3. 在弹出的窗口中,切换到 HTTPS 选项卡。
  4. 勾选以下两个最重要的选项:
    • Decrypt HTTPS traffic:解密 HTTPS 流量,这是核心功能。
    • Ignore server certificate errors ( Potentially dangerous):忽略服务器证书错误,这个选项可以帮助 Fiddler 处理一些自签名证书或证书不匹配的情况,强烈建议勾选。
  5. 点击 Actions 按钮,选择 Trust Root Certificate,这会在你的系统中安装一个 Fiddler 的根证书,用于解密 HTTPS 流量,系统可能会弹出安全警告,请允许它。
  6. 点击 OK 保存设置。

注意:完成配置后,需要重启浏览器才能让新的证书设置生效。


第 2 步:捕获 PHP 请求

配置完成后,Fiddler 已经准备就绪。

  1. 确保你的 PHP 项目正在运行(通过 XAMPP, WAMP, MAMP, 或 php -S localhost:8000)。

  2. 打开你的浏览器,访问你的 PHP 页面,http://localhost/myproject/index.php

    fiddler php请求参数
    (图片来源网络,侵删)
  3. 在页面上执行操作,

    • 提交一个包含用户名和密码的登录表单。
    • 在搜索框中输入关键词并点击搜索。
    • 点击一个带有查询参数的链接,如 http://localhost/myproject/profile.php?id=123
  4. 回到 Fiddler 窗口,你会看到左侧的 Sessions 列表中出现了很多条目,这些就是浏览器和服务器之间的通信记录,你可以通过点击顶部的过滤栏来筛选,比如只显示 localhost 的请求。


第 3 步:分析请求参数(核心)

在 Fiddler 的 Sessions 列表中,找到你刚才执行操作所产生的那条请求,并点击它,右侧的 Inspector 窗口会显示该请求的详细信息。

PHP 请求参数主要存在于两种地方:查询字符串请求体

fiddler php请求参数
(图片来源网络,侵删)

A. 查看查询字符串参数

查询字符串是 URL 中 后面的部分,通常用于 GET 请求。

  1. Sessions 列表中,点击一个 GET 请求,profile.php?id=123&name=test
  2. 在右侧的 Inspector 窗口中,确保选中 Headers 选项卡。
  3. 向下滚动,你会看到 Request URLQuery String 字段。
    • Request URL: http://localhost/myproject/profile.php
    • Query String Parameters:
      • id: 123
      • name: test

这里的 idname PHP 中可以通过 $_GET['id']$_GET['name'] 获取的参数。

B. 查看请求体中的参数

请求体参数通常用于 POST 请求,如表单提交。

  1. Sessions 列表中,点击一个 POST 请求,例如登录表单的提交。
  2. 在右侧的 Inspector 窗口中,切换到 Inspectors 选项卡。
  3. 你会看到几个子选项卡,点击 TextView
  4. TextView 中,你可以清晰地看到请求体的原始内容,对于 application/x-www-form-urlencoded 类型的表单,它会是这样:
    username=admin&password=123456

    对于 multipart/form-data 类型的表单(通常包含文件上传),它会显示一个更复杂的结构,包含边界符和各个字段。

这些 usernamepassword PHP 中可以通过 $_POST['username']$_POST['password'] 获取的参数。

  1. 更直观的方式是点击 JSONXML(如果数据格式是这两种)或者 Forms 选项卡,Fiddler 会帮你将参数解析成易于阅读的键值对形式。

第 4 步:修改和重发请求(调试神器)

这是 Fiddler 最强大的功能之一,可以让你在不修改代码的情况下,模拟不同的输入来测试 PHP 脚本的健壮性。

  1. Sessions 列表中,右键点击你想要修改的请求。
  2. 在弹出的菜单中,选择 Recompose
  3. 一个新的窗口会打开,显示原始请求的详细信息。
  4. 修改参数:
    • 如果要修改 URL 中的查询参数,直接在顶部的 URL 中修改。
    • 如果要修改 POST 请求体中的参数,点击 TextViewForms 选项卡,直接修改对应的值,把 password123456 改成 wrongpass
  5. 修改完成后,点击窗口左上角的 Execute 按钮(一个绿色的播放图标)。

这个修改后的请求会被立即发送到你的 PHP 服务器,服务器会像处理一个全新的请求一样处理它,然后你可以在 Fiddler 中看到服务器的响应,这对于测试 SQL 注入、XSS、表单验证等场景非常有用。


常见问题与技巧

  • 只显示 PHP 相关请求:在 Fiddler 顶部的过滤框中输入 host:localhost,这样只会显示与 localhost 通信的请求,过滤掉广告、字体加载等无关请求。
  • 如何查看 Cookie:在请求的 Headers 选项卡中,找到 Cookie 字段,里面包含了所有发送给服务器的 Cookie,PHP 中可以通过 $_COOKIE 超全局变量来访问它们。
  • 如何查看响应:点击一个请求后,在右侧 Inspector 窗口中切换到 Response 选项卡,这里显示了服务器返回给你的 HTML、JSON 或其他数据,对于 PHP,你可以在这里看到 echoprint 输出的结果。
  • 自动解压和压缩:Fiddler 可以自动解压 Gzip 压缩的响应,让你直接看到原始文本,在 Tools -> Options -> HTTPS 选项卡中可以配置。
步骤 操作 目的 对应 PHP 超全局变量
配置 Tools -> Options -> HTTPS 捕获 HTTPS 流量 -
捕获 在浏览器操作,Fiddler 记录 获取真实请求 -
分析 查看 HeadersInspectors 查看请求参数 $_GET, $_POST, $_COOKIE
重发 右键 RecomposeExecute 修改参数进行调试 -

通过熟练掌握 Fiddler,你可以极大地提高 PHP 项目的调试效率,快速定位由参数引起的问题。

-- 展开阅读全文 --
头像
Phantom 4参数有哪些关键性能与配置?
« 上一篇 今天
智能插座USB口为何有电流声?
下一篇 » 57分钟前

相关文章

取消
微信二维码
支付宝二维码

最近发表

标签列表

目录[+]