Adilnasceng/requestlab

GitHub: Adilnasceng/requestlab

一款Chrome DevTools扩展,用于实时拦截、修改、重放HTTP请求并支持模拟响应、速率限制绕过和API逆向工程。

Stars: 2 | Forks: 0

# RequestLab ![Chrome Extension](https://img.shields.io/badge/Chrome-Extension-4285F4?logo=googlechrome&logoColor=white) ![Manifest V3](https://img.shields.io/badge/Manifest-V3-green) ![License](https://img.shields.io/badge/License-MIT-blue)
## ⚠️ 免责声明 ## 功能特性 | 功能 | 描述 | |---|---| | **请求拦截器** | 通过 `chrome.debugger` 实时捕获所有 XHR + Fetch 请求 | | **请求/响应编辑器** | 在发送或接收前修改请求头、正文、URL 参数 | | **规则引擎** | 持久化规则:模拟响应、注入/移除请求头、状态码覆盖 | | **速率限制绕过** | 移除 `X-RateLimit-*` 请求头、轮换 User-Agent、添加请求延迟 | | **重放** | 重新发送任何已捕获的请求并应用修改 | | **导出** | 复制为 `curl`、`fetch()` 或 `Python requests` 代码片段 | | **API 逆向工程** | 自动提取 Bearer 令牌、API 密钥、URL 参数 | | **WebSocket 监控** | 记录发送/接收的帧,带时间戳和 JSON 格式化显示 | ## 截图
Request Log Panel *实时请求日志,显示方法、状态码、大小和时间*
Response Inspector *响应正文检查器,带 JSON 语法高亮*
Rules Engine *规则引擎 — 模拟响应、请求头注入、状态码覆盖*
Replay and Export *重放请求并编辑,导出为 cURL / fetch / Python*
## 安装 **无需构建步骤 — 直接作为未打包扩展加载。** 1. 克隆仓库: git clone https://github.com/Adilnasceng/requestlab.git 2. 打开 Chrome 并访问: chrome://extensions 3. 启用**开发者模式**(右上角开关)。 4. 点击**加载已解压的扩展程序**并选择 `requestlab/` 文件夹。 5. 扩展程序已安装完成。 ## 使用方法 1. 打开您想要检查的任意网站。 2. 按 `F12` 打开 Chrome 开发者工具。 3. 在开发者工具面板中点击 **RequestLab** 选项卡。 ### 拦截请求 一旦打开面板,页面发出的所有 HTTP 请求都会自动记录。点击任意行可检查请求头、正文和响应。 ``` GET 200 /api/user/profile JSON 1.2KB 43ms POST 201 /api/comments JSON 0.4KB 120ms GET 429 /api/feed JSON — 12ms ← rate limited ``` ### 创建模拟规则 1. 点击工具栏中的 **⚙ 规则**。 2. 点击 **+ 添加规则**。 3. 设置: - **类型:** `模拟响应` - **URL 模式:** 例如 `api/user` - **响应正文:** 您的自定义 JSON 4. 点击 **保存规则**。 所有匹配的请求现在将返回您的模拟响应,而不会访问服务器。 ### 重放请求 1. 在日志中点击一个请求。 2. 打开右侧的 **重放** 选项卡。 3. 编辑方法、URL、请求头或正文。 4. 点击 **▶ 发送请求**。 ### 导出为代码 在任意选中的请求上打开 **导出** 选项卡并选择: - `cURL` — 可直接粘贴到终端 - `fetch()` — JavaScript 代码片段 - `Python` — `requests` 库代码片段 ### 速率限制绕过 点击 **⚡ RL 绕过** 并启用: - 从发出的请求中移除 `X-RateLimit-*` 和 `Retry-After` 请求头 - 每次请求轮换 User-Agent 字符串 - 在请求之间添加可配置的延迟(毫秒) 所有 429 响应会被单独记录,并显示 `Retry-After` 值。 ## 文件结构 ``` requestlab/ ├── manifest.json # MV3 manifest ├── background/ │ └── service_worker.js # Debugger lifecycle, interception, rules engine ├── devtools/ │ ├── devtools.html # DevTools entry page │ ├── devtools.js # Panel registration │ ├── panel.html # Main UI │ ├── panel.js # UI logic, virtual scroll, export │ └── panel.css # Dark theme styles ├── popup/ │ ├── popup.html # Toolbar popup │ ├── popup.js # Quick stats │ └── popup.css ├── lib/ │ └── codemirror/ # Bundled CodeMirror 5.65.16 (offline) └── icons/ └── icon.svg ``` ## 权限说明 | 权限 | 原因 | |---|---| | `debugger` | 附加到标签页以通过 Chrome 开发者工具协议拦截请求 | | `webRequest` | 监控网络活动 | | `declarativeNetRequest` | 应用持久化的请求头注入/阻止规则 | | `storage` | 保存规则和设置 | | `tabs` | 识别被检查的标签页 | | `host_permissions: ` | 拦截任意网站的请求 | ## 技术栈 - **Manifest V3** — 基于 service worker,无持久化的后台页面 - **Vanilla JavaScript** — 无框架依赖 - **Chrome 开发者工具协议** — 使用 `Fetch` 域进行拦截,使用 `Network` 域进行 WebSocket 监控 - **declarativeNetRequest** — 用于持久化的请求头规则 - **CodeMirror 5** — 本地打包用于 JSON 编辑
## 许可证 本项目基于 [MIT 许可证](LICENSE) 授权。 ## 作者 **Adil NAS** — [GitHub](https://github.com/Adilnasceng) · [邮箱](mailto:adilnasceng@gmail.com) [![赞助](https://img.shields.io/badge/Sponsor-%E2%9D%A4-red?style=for-the-badge&logo=github-sponsors)](https://github.com/sponsors/Adilnasceng)
标签:API测试, API调试, DevTools, Fetch, Header修改, HTTP拦截, Manifest V3, Mock响应, TCP/UDP协议, WebSocket监控, XHR, 云资产清单, 代码生成, 响应编辑, 威胁情报, 开发者工具, 浏览器插件, 渗透测试工具, 网络安全, 网络调试, 自动化, 自定义脚本, 请求修改, 请求重放, 逆向工程, 速率限制绕过, 隐私保护