Mitmproxy:捕获 HTTP 请求/响应 headers?

Mitmproxy: Capture HTTP request / response headers?

我正在遵循 following 问题的代码(转载如下):

def response(flow):
    print("")
    print("="*50)
    print(flow.request.method + " " + flow.request.path + " " + flow.request.http_version)

    print("-"*25 + " request headers " + "-"*25)
    for k, v in flow.request.headers.items():
        print("%-30s: %s" % (k.upper(), v))

    print("-"*25 + " response headers " + "-"*25)
    for k, v in flow.response.headers.items():
        print("%-30s: %s" % (k.upper(), v))

    print("-"*25 + " body (first 100 bytes) " + "-"*25)
    print(flow.request.content[0:100])

我无法理解在使用 mitmproxy 时,您在哪里可以找到 flow 变量。你如何连接 mitmproxy 以便你可以接收请求流?

我错了。看起来您传入的脚本带有 -s 标志 类似于:

mitmproxy -s myscript.py

基本上你传入文件名,mitmproxy会加载它并调用request()函数,传入你提到的流变量。

我认为阅读这两页可能会有所帮助。请注意,它们有不同种类的附加组件。我认为你拥有的简单无类 request() 函数会使它成为 'script' 类型。

https://docs.mitmproxy.org/stable/addons-overview/

https://docs.mitmproxy.org/stable/addons-scripting/

文档中还有更多示例。 此外,我发现这个 GitHub 存储库对示例很有帮助:

https://github.com/KevCui/mitm-scripts