You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Mitmproxy筛选包含指定字符串的流量?

在Mitmproxy中筛选包含指定字符串的流量

嘿,这个需求在Mitmproxy里其实有两种常用的实现方式,看你更倾向于快捷操作还是灵活定制:

方法一:用内置过滤表达式(快捷无代码)

Mitmproxy自带了强大的过滤语法,直接用命令行参数或者web界面就能筛选出符合条件的流量。

命令行启动时筛选

启动Mitmproxy的时候,加上-f参数并指定过滤规则:

mitmproxy -f "~s teststring1|teststring2|teststring3"

这里的规则解释:

  • ~s:表示匹配请求或响应的内容(包括URL、请求体、响应体、headers里的文本)
  • teststring1|teststring2|teststring3:用正则的|来表示“或”,只要包含其中任意一个字符串就会被保留

如果只想筛选请求或者响应,可以加上额外的标识:

  • 只看包含指定字符串的请求:mitmproxy -f "~q ~s teststring1|teststring2|teststring3"(~q代表请求)
  • 只看包含指定字符串的响应:mitmproxy -f "~r ~s teststring1|teststring2|teststring3"(~r代表响应)

在Mitmweb界面中筛选

如果你用的是可视化的Mitmweb,直接在顶部的Filter输入框里输入同样的表达式就行,实时就能看到过滤后的结果。

如果需要忽略大小写匹配,只要在正则里加(?i):

~s (?i)teststring1|teststring2|teststring3

方法二:自定义Python脚本(灵活定制)

如果你的需求更复杂(比如要同时检查多个位置的内容、加自定义判断逻辑,或者要对匹配到的流量做额外处理),写个简单的Python脚本是更好的选择。

比如创建一个名为filter_target_strings.py的脚本,内容如下:

from mitmproxy import http
from mitmproxy import ctx

# 定义你要匹配的目标字符串集合
TARGET_STRINGS = {"teststring1", "teststring2", "teststring3"}

def request(flow: http.HTTPFlow) -> None:
    # 合并请求的URL、请求体和headers文本,统一检查
    request_content = f"{flow.request.pretty_url}\n{flow.request.text}\n{str(flow.request.headers)}"
    # 如果不包含任何目标字符串,就从视图中移除该流量
    if not any(target in request_content for target in TARGET_STRINGS):
        ctx.master.commands.call("view.remove", [flow])

def response(flow: http.HTTPFlow) -> None:
    # 检查响应体内容
    response_content = flow.response.text
    if not any(target in response_content for target in TARGET_STRINGS):
        ctx.master.commands.call("view.remove", [flow])

然后用这个脚本启动Mitmproxy:

mitmproxy -s filter_target_strings.py

这个脚本的逻辑是:

  • 对每个请求,检查URL、请求体和headers里是否包含目标字符串,不包含就移除
  • 对每个响应,检查响应体内容,不包含就移除
  • 最终你在Mitmproxy里看到的就只有符合条件的流量了

如果需要忽略大小写,可以把匹配条件改成:

if not any(target.lower() in request_content.lower() for target in TARGET_STRINGS):

内容的提问来源于stack exchange,提问作者Marcin Bobowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:58:56