[PYTHON] Fügen Sie mitmproxy Ihre eigene Inhaltsansicht hinzu

Was ist Inhaltsansicht?

Mit mitmproxy können Sie das Format auswählen, das angezeigt werden soll, wenn der Inhalt der Anforderungsantwort angezeigt wird.

image.png

Der Mechanismus zum Anzeigen jedes Formats wird in mitmproxy als ** Inhaltsansicht ** bezeichnet.

Grundlegende Elemente wie HTML, CSS und JSON werden standardmäßig bereitgestellt.

Erstellen Sie Ihre eigene Inhaltsansicht

Da mimproxy mit Python erweitert werden kann, können Sie auch Ihre eigene ** Inhaltsansicht ** erstellen!

Beispiele im offiziellen Github-Repository Nehmen wir also diesen Code als Beispiel.

Ein Beispiel hierfür ist ** "Anforderungs- / Antwortinhalt in einem getauschten Fall anzeigen" **.

custom_contentview.py


from mitmproxy import contentviews


# contentviews.Erstellen Sie eine Klasse, die View erbt
class ViewSwapCase(contentviews.View):
    name = "swapcase"

    #Geben Sie eine Tastenkombination an, um diese Anzeige anzuwenden, wenn Sie mit CUI gestartet werden
    prompt = ("swap case text", "z")

    content_types = ["text/plain"]

    #Stellen Sie hier den Hauptprozess zum Umschreiben von Inhalten ein
    # data:Inhalt der Anfrage / Antwort
    # metadata: metadata["headers"]Sie können die HTTP-Header unter sehen
    def __call__(self, data, **metadata):
        return "case-swapped text", contentviews.format_text(data.swapcase())


view = ViewSwapCase()


def load(l):
    contentviews.add(view)


def done():
    contentviews.remove(view)

laden und starten

Ich konnte es mit meinem eigenen Mitmproxy nicht gut lesen. Nachdem ich mir den Quellcode von mitmproxy angesehen und verschiedene Dinge getan hatte, gelang es mir, ihn zu laden, indem ich "def load (l)" in "def start ()" änderte.

-def load(l):
+def start():
    contentviews.add(view)

Wenn man sich den Github von Mitmproxy ansieht, scheint die Version, die Sie ausführen, anders zu sein, da sie unterwegs von "Start" auf "Laden" umgeschrieben wurde.

addon loader: add boot_into, which replaces returning from start()

Beginnen Sie mit dem installierten Erweiterungsskript

Sie können den Pfad der Skriptdatei hinzufügen, indem Sie dem Argument des Befehls "mitmproxy" (oder "mitmweb", "mitmdump") "-s" hinzufügen.

Ich verwende mitmweb, weil ich mitmproxy in einer Windows-Umgebung nicht verwenden kann.

mitmweb -s custom_contentview.py

Dies ist erfolgreich, wenn ** Swapcase ** zur Auswahl des Anforderungs- / Antwortformats hinzugefügt wird.

image.png

Referenzlink

Overview — mitmproxy 2.0.2 documentation

Recommended Posts

Fügen Sie mitmproxy Ihre eigene Inhaltsansicht hinzu
Überbrücken Sie ROS mit Ihrem eigenen Protokoll
Fügen Sie Ihrem Computer eine GPIO-Karte hinzu. (1)
Wenn Sie dasselbe wie zuvor verwenden, können Sie dies visualisieren, indem Sie Japan, China und Südkorea ausschließen, in denen viele Menschen infiziert sind. In diesem Fall lauten die Daten für "2020/02/21" wie folgt. Besonders auffällig sind Südostasien, Europa und Nordamerika. Ich hoffe es konvergiert so schnell wie möglich. .. .. Migrieren Sie Python, Pandas, Python3, Zeitreihendaten und eigene CMS-Daten nach WordPress
So importieren Sie Ihr eigenes Modul mit jupyter
So installieren Sie Ihre eigene (Root-) Zertifizierungsstelle
[Python] So fügen Sie RDF Triple mithilfe von rdflib zu Ihrem eigenen Fuseki-Server hinzu
Fügen Sie der Pip-Suche Ihre bevorzugte Anzeigefunktion hinzu
So definieren Sie Ihr eigenes Ziel in Sage
Kommentieren Sie Ihre eigenen Daten, um Mask R-CNN zu trainieren
Schritte zum Installieren Ihrer eigenen Bibliothek mit pip
Memo zum Erstellen einer eigenen Box mit Peppers Python
[Einführung in die Udemy Python3 + -Anwendung] 66. Erstellen einer eigenen Ausnahme
Versuchen Sie, Ihr eigenes Intro-Quiz mit Python zu verbessern
Versuchen Sie, die LED in Ihren eigenen PC einzubauen (leicht)
[Road to Intermediate Python] Definieren Sie in Ihrer eigenen Klasse
Erstellen Sie Ihre eigene Ausnahme
[Ansible] So rufen Sie Variablen auf, wenn Sie ein eigenes Modul erstellen
Wie Sie pyenv und pyenv-virtualenv auf Ihre eigene Weise verwenden
(Hinweis) So übergeben Sie den Pfad Ihres eigenen Moduls
Verwenden Sie Mitmproxy, um die API Ihrer App in eine Entwicklungsumgebung zu zwingen