Мне нужна альтернатива mitmproxy для Python - PullRequest
0 голосов
/ 11 июня 2018

У меня есть проект, и мне нужно создать перехватчик пакетов HTTP в python в качестве прокси, но я не могу использовать mitmproxy, потому что он работает только из команды cli, а не из внутренней библиотеки.У меня есть приложение, и я не могу сказать людям, что нужно запускать mitmproxy, потому что это то, что приложение должно делать изнутри.В настоящее время я использую форк для запуска mitmproxy из bash, но это доставляет мне много проблем при создании этой функциональности для других операционных систем.

По этой причине кто-то знает какой-то способ перехватить трафик как прокси, которыйне зависит от команды вне питона?.

1 Ответ

0 голосов
/ 16 октября 2018

mitmproxy может быть загружен в ваш код Python.

from mitmproxy import proxy, options
from mitmproxy.tools.dump import DumpMaster
from mitmproxy.addons import core


class AddHeader:
    def __init__(self):
        self.num = 0

    def response(self, flow):
        self.num = self.num + 1
        print(self.num)
        flow.response.headers["count"] = str(self.num)


addons = [
    AddHeader()
]

if __name__ == '__main__':

    opts = options.Options(listen_host='127.0.0.1', listen_port=8080)
    pconf = proxy.config.ProxyConfig(opts)

    m = DumpMaster(None)
    m.server = proxy.server.ProxyServer(pconf)
    print(m.addons)
    m.addons.add(addons)
    # m.addons.add(core.Core())

    try:
        m.run()
    except KeyboardInterrupt:
        m.shutdown()

Этот код взят из GitHub выпуска .

...