文章目录mitmproxy抓包调试这件事它做到了极致它到底能干什么实际使用场景技术上有什么亮点和 Charles、Fiddler 比怎么样怎么装mitmproxy抓包调试这件事它做到了极致做 Web 开发的都知道抓包调试是基本功。浏览器自带的 DevTools 能看请求但遇到 HTTPS、代理、WebSocket 这些场景就有点力不从心了。mitmproxy 这个项目专门解决这类问题GitHub 上 Star 已经到了 4.4 万算是抓包工具里的老牌选手了。它到底能干什么简单说mitmproxy 是一个支持 SSL/TLS 的交互式代理服务器。所有经过它的 HTTP/HTTPS 流量你都能看到、能改、能重放。它不是一个工具而是三个mitmproxy是带终端界面的版本打开就是一个 TUI 应用实时显示所有经过代理的请求和响应。你可以用键盘快捷键翻看详情也能直接在终端里拦截和修改请求。mitmdump是命令行版本类似 tcpdump 但专门针对 HTTP。适合写脚本做自动化处理比如批量抓取接口数据、自动修改请求参数、记录所有 API 调用。mitmweb提供了一个 Web 界面浏览器打开就能用。对不习惯终端操作的人来说更友好。三个工具共享同一个内核功能完全一致只是交互方式不同。你完全可以白天用 mitmweb 看流量晚上写脚本用 mitmdump 跑自动化。实际使用场景我身边用 mitmproxy 最多的是这几类人前端开发调试本地起个代理把线上接口的响应改掉测试各种边界情况。不用改后端代码也不用搭 mock server。移动端抓包手机配置代理指向电脑所有 App 的网络请求都能看到。调试 App 接口、排查网络问题很方便。安全测试拦截 HTTPS 流量修改请求内容测试服务端的校验逻辑。安全研究人员基本人手一个。API 文档生成用 mitmdump 录制一遍接口调用自动生成请求和响应的记录省得手动写文档。技术上有什么亮点mitmproxy 是 Python 写的但它不是那种慢吞吞的 Python 工具。它基于 asyncio 做异步 IO处理并发连接的性能不错。支持 HTTP/1、HTTP/2 和 WebSocket覆盖了目前主流的协议。它的扩展机制做得挺好。你可以用 Python 写插件挂载到请求和响应的各个阶段。官方提供了一些现成的插件比如自动给请求加 header、把响应保存到文件、根据条件过滤流量等。证书管理是个麻烦事但 mitmproxy 处理得比较省心。第一次启动会自动生成 CA 证书你只需要在设备上信任这个证书就行。文档里有各平台的详细配置步骤。和 Charles、Fiddler 比怎么样Charles 和 Fiddler 是 GUI 工具上手快但不够灵活。mitmproxy 的优势在于可编程你可以用代码控制代理行为这对自动化测试和批量处理来说是刚需。另外 mitmproxy 完全开源MIT 协议。Charles 要收费Fiddler 的免费版功能有限。如果你是个人开发者或者小团队mitmproxy 是更实际的选择。当然也有不足。终端界面对新手不太友好上手需要一点学习成本。Web 界面 mitmweb 好一些但功能没有 Charles 那么直观。如果你只是偶尔抓个包看看浏览器 DevTools 够用的话没必要折腾 mitmproxy。怎么装Python 环境下直接 pip 安装pip install mitmproxy装完运行mitmproxy就能启动。macOS 和 Linux 都能直接用Windows 上建议用 WSL。非 Python 用户也可以下载官方的预编译二进制包不用装 Python 环境。如果你经常做 Web 开发或者安全测试值得花半天时间把它配置好。一旦用熟了调试效率会提升不少。Python 环境。如果你经常做 Web 开发或者安全测试值得花半天时间把它配置好。一旦用熟了调试效率会提升不少。
mitmproxy:抓包调试这件事,它做到了极致
文章目录mitmproxy抓包调试这件事它做到了极致它到底能干什么实际使用场景技术上有什么亮点和 Charles、Fiddler 比怎么样怎么装mitmproxy抓包调试这件事它做到了极致做 Web 开发的都知道抓包调试是基本功。浏览器自带的 DevTools 能看请求但遇到 HTTPS、代理、WebSocket 这些场景就有点力不从心了。mitmproxy 这个项目专门解决这类问题GitHub 上 Star 已经到了 4.4 万算是抓包工具里的老牌选手了。它到底能干什么简单说mitmproxy 是一个支持 SSL/TLS 的交互式代理服务器。所有经过它的 HTTP/HTTPS 流量你都能看到、能改、能重放。它不是一个工具而是三个mitmproxy是带终端界面的版本打开就是一个 TUI 应用实时显示所有经过代理的请求和响应。你可以用键盘快捷键翻看详情也能直接在终端里拦截和修改请求。mitmdump是命令行版本类似 tcpdump 但专门针对 HTTP。适合写脚本做自动化处理比如批量抓取接口数据、自动修改请求参数、记录所有 API 调用。mitmweb提供了一个 Web 界面浏览器打开就能用。对不习惯终端操作的人来说更友好。三个工具共享同一个内核功能完全一致只是交互方式不同。你完全可以白天用 mitmweb 看流量晚上写脚本用 mitmdump 跑自动化。实际使用场景我身边用 mitmproxy 最多的是这几类人前端开发调试本地起个代理把线上接口的响应改掉测试各种边界情况。不用改后端代码也不用搭 mock server。移动端抓包手机配置代理指向电脑所有 App 的网络请求都能看到。调试 App 接口、排查网络问题很方便。安全测试拦截 HTTPS 流量修改请求内容测试服务端的校验逻辑。安全研究人员基本人手一个。API 文档生成用 mitmdump 录制一遍接口调用自动生成请求和响应的记录省得手动写文档。技术上有什么亮点mitmproxy 是 Python 写的但它不是那种慢吞吞的 Python 工具。它基于 asyncio 做异步 IO处理并发连接的性能不错。支持 HTTP/1、HTTP/2 和 WebSocket覆盖了目前主流的协议。它的扩展机制做得挺好。你可以用 Python 写插件挂载到请求和响应的各个阶段。官方提供了一些现成的插件比如自动给请求加 header、把响应保存到文件、根据条件过滤流量等。证书管理是个麻烦事但 mitmproxy 处理得比较省心。第一次启动会自动生成 CA 证书你只需要在设备上信任这个证书就行。文档里有各平台的详细配置步骤。和 Charles、Fiddler 比怎么样Charles 和 Fiddler 是 GUI 工具上手快但不够灵活。mitmproxy 的优势在于可编程你可以用代码控制代理行为这对自动化测试和批量处理来说是刚需。另外 mitmproxy 完全开源MIT 协议。Charles 要收费Fiddler 的免费版功能有限。如果你是个人开发者或者小团队mitmproxy 是更实际的选择。当然也有不足。终端界面对新手不太友好上手需要一点学习成本。Web 界面 mitmweb 好一些但功能没有 Charles 那么直观。如果你只是偶尔抓个包看看浏览器 DevTools 够用的话没必要折腾 mitmproxy。怎么装Python 环境下直接 pip 安装pip install mitmproxy装完运行mitmproxy就能启动。macOS 和 Linux 都能直接用Windows 上建议用 WSL。非 Python 用户也可以下载官方的预编译二进制包不用装 Python 环境。如果你经常做 Web 开发或者安全测试值得花半天时间把它配置好。一旦用熟了调试效率会提升不少。Python 环境。如果你经常做 Web 开发或者安全测试值得花半天时间把它配置好。一旦用熟了调试效率会提升不少。