数据注入总览:两种模式的核心区别
数据注入是什么
数据注入是 httpCanary 最强大的功能——它允许你 拦截正在传输的请求或响应,修改其中的内容,然后继续发给对方。换句话说,你可以「伪造」任何 HTTP 通信的内容。
想象这个场景:服务端返回了 inventory: 0 表示库存不足,你可以把它改成 inventory: 100,看看客户端收到后会怎么处理——这就是数据注入的能力。
注入的两种模式
httpCanary 提供了两种不同的注入模式:
| 对比项 | 静态注入 | 动态注入 |
|---|---|---|
| 触发方式 | 预设规则,自动匹配执行 | 实时拦截,手动修改 |
| 注入器数量 | 支持多个注入器同时生效 | 同一时刻只能有一个注入器 |
| 适合场景 | 长期固定的修改规则 | 精确调试单个请求 |
| 是否需要高级版 | ✅ | ✅ |
| 配置时机 | 任意时刻创建规则 | 需要在抓包运行中操作 |
能修改什么
两种注入模式都支持对以下字段进行修改:
请求侧
- 请求 URL:可以改路径或查询参数
- 请求方法:GET 改 POST 等
- 请求头:增加、删除、修改 Header 字段
- 请求参数:Form URL 编码参数的增删改
- 请求体:POST/PUT 请求的 Body 内容
响应侧
- 响应状态码:200 改 500、200 改 301 等
- 响应头:增加、删除、修改 Header 字段
- 响应体:服务器返回的实际数据——可以整体替换或修改其中部分
注入 vs 断点
注入和断点是两个容易混淆的功能:
- 注入 = 自动修改,预设规则后无需人工干预,每次匹配的请求都会被修改
- 断点 = 暂停等待手动操作,暂停后你可以选择修改、原样放行、或者丢弃
简单说:如果你知道想改什么,用注入;如果想先看看再决定改不改,用断点。
入门路径
建议按以下顺序学习数据注入: