mitmproxy斗转星移-修改请求数据 & 修改响应数据
文本类型改修一下没什么难度。
mitmproxy就像是慕容复的成名绝技斗转星移一样。虽然没有乔峰的降龙十八掌那般无坚不摧,但是对付一些小喽啰足矣了。
使用mitmproxy+自定义脚本可以修改请求数据,对业务做到最少的侵入。
首先说一下为什么会有修改请求数据、修改响应数据这样的需求:
有两个环境测试环境A,生产环境B。测试环境域名A.com, 生产环境域名B.com。现有埋点日志,日志中有业务参数,url参数,服务端的入库规则是只有B.com的数据才会入库。但是A.com的埋点数据显然url=‘A.com’, 所以为了能够验证数据入库,我是用mitmproxy作为代理,使用脚本修改请求数据,replace(“A.com”, “B.com”),从而达到不可告人的目的。
当然了在使用过程中也遇到了一些问题,修改文本很容易理解,但是修改表单数据让人感到疑惑。
我之所以会有这个疑问,是因为我对multipart/form-data协议不熟悉
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryQCiKjmmpTx9RkdZD
主要是form Data形式的。
flow.request.multipart_form
你应该知道我把这句放到这篇文章里的原因,如果你不知道那也没有关系,毕竟多年以后作者都会忘记当初问什么要写这么一句话:windows一键开启和关闭系统代理:
echo “开启系统代理”
reg add “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings” /v ProxyEnable /t REG_DWORD /f /d 1
reg add “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings” /v ProxyServer /t REG_SZ /f /d “http=127.0.0.1:8888;https=127.0.0.1:8888”
)
if “%num%”==“b” (
echo.
echo.
echo “关闭系统代理”
reg add “HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings” /v ProxyEnable /t REG_DWORD /f /d 0
reg delete “hkcu\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections” /f
)
你知道一个工作日会产生多少个http请求吗?
我用mitmproxy代理,下班的时候发现自己产生了大概6万个请求。