So überprüfen Sie den Netzwerkverkehr mit mitmproxy

author
5 minutes, 10 seconds Read

Die meisten modernen Apps sind auf APIs angewiesen. “ – Wie kann ich auf Ihren Katalog zugreifen? – Hier ist eine API dafür. “ APIs sind überall und das wird sich nicht ändern.

Es ist (oft) gut, jeden Teil Ihres Codes in separate Dienste aufzuteilen, aber wenn es um Tests geht, kann diese Trennung die Dinge etwas schwieriger machen.

Front-End-Apps-Entwickler schreiben nicht mehr den Code, der sich um die Kerngeschäftslogik kümmert. Im Allgemeinen werden komplexe Datenverarbeitungsaufgaben auf API-Seite ausgeführt, und Front-End-Apps müssen nur anzeigen, was von der API bereitgestellt wird.

Aus diesem Grund ist es so wichtig, den Datenpfad von der App zur API zurückverfolgen zu können. Wenn Sie eine App testen und validieren, ist es entscheidend, die folgenden Fragen beantworten zu können :

  • welche API-Endpunkte verwendet die App für diesen Bildschirm?
  • Was ist in der Antwort der API enthalten?
  • Was passiert, wenn sich die API-Antwortstruktur ändert?

Am Ende dieses Tutorials sollten Sie in der Lage sein, mitmproxy zu verwenden, um diese Fragen zu beantworten. Aber Sie werden sehen, mit diesem erstaunlichen Tool gibt es noch viel mehr zu tun.

Funktionsweise von mitmproxy

Bevor wir anfangen …

Sie fragen sich vielleicht, warum Sie mitmproxy anstelle eines anderen Tools verwenden sollten. Und das ist eine gute Frage (folgen Sie nicht dem Hype!).

Mein erstes Argument ist der Preis: mitmproxy ist kostenlos (veröffentlicht unter MIT-Lizenz), wenn eine Lizenz für Charles Proxy rund 50 $ kostet.

Auch mitmproxy ist ein sehr mächtiges Werkzeug : es bietet nicht nur Optionen zum Umschreiben des Datenverkehrs, sondern ermöglicht Ihnen auch, Python-Skripte auszuführen, um Anforderungen und Antworten zu ändern. Dies ist sehr hilfreich, wenn Sie versuchen, Edge-Cases zu testen.

Zum Abschluss kann mitmproxy überall mit einer Weboberfläche oder in der Befehlszeile ausgeführt werden : Unabhängig vom Kontext gibt es gute Chancen, dass Sie es verwenden können.

Installation

Es gibt mehrere Möglichkeiten mitmproxy zu installieren. Die Verwendung von Brew ist der „Standard“ -Weg, aber ich persönlich bevorzuge die Verwendung über Docker : es hindert mich daran, mit Python-Versionen umzugehen, und hilft auch, meinen Mac sauber zu halten. Darüber hinaus ist es wirklich einfach und es sind keine besonderen Docker-Kenntnisse erforderlich.

Für die Installation können Sie jede Methode wählen, mit der Sie sich am wohlsten fühlen.

Verwenden von brew

Wenn brew bereits auf Ihrem Computer installiert ist und alles gut geht, sollte das Ausführen dieses einfachen Befehls ausreichen, um die Aufgabe zu erledigen :

brew install mitmproxy

Sobald mitmproxy installiert ist, können Sie direkt zum Abschnitt Let’s run mitmproxy springen.

Docker verwenden

Das Ausführen von mitmproxy mit dem offiziellen Docker-Image ist so einfach wie das Ausführen des folgenden Befehls :

docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy:4.0.4

Um zu vermeiden, dass die Zertifikate von mitmproxy jedes Mal auf Ihren Testgeräten installiert werden müssen, wird dringend empfohlen, den Zertifikatsordner des Containers mit einem lokalen Ordner zu teilen (mit dem Parameter -v).

Auf diese Weise bleiben Zertifikate auch nach dem Beenden Ihres Docker-Containers erhalten.

docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4

Um die Verwendung dieses Befehls zu vereinfachen, fügen Sie einen Alias in Ihrem ~/.bash_profile :

alias mitmproxy='docker run --rm -it -v /your/local/folder:/home/mitmproxy/.mitmproxy -p 8080:8080 mitmproxy/mitmproxy:4.0.4'

Und vergessen Sie nicht, source ~/.bash_profile auszuführen, nachdem Sie die Datei bearbeitet haben.

Lassen Sie uns mitmproxy ausführen

Egal wie Sie es installiert haben, Sie sollten jetzt in der Lage sein, mitmproxy mit dem Befehl zu starten :

mitmproxy

Wenn das Programm startet, dann herzlichen Glückwunsch! Du kannst weitermachen!

mitmproxy lebt

Netzwerkeinstellungen auf dem Zielgerät

mitmproxy kann als Reverse Proxy, als transparenter Proxy oder als regulärer Proxy ausgeführt werden. Um die Dinge einfach zu halten, werden wir es als regulären Proxy verwenden.

Die Verwendung des Programms auf diese Weise ist sicherlich einfacher, bedeutet jedoch, dass Sie die Netzwerkeinstellungen des Zielgeräts ändern können, um einen Proxy festzulegen.

Dies ist wirklich einfach, wenn Sie Anforderungen von einem iOS- oder Android-Gerät überprüfen müssen, wird jedoch bei Geräten, die keine erweiterten Netzwerkeinstellungen bieten, komplizierter.

Folgen Sie je nach Zielgerät einfach dem entsprechenden Unter-Tutorial :

  • Einrichten eines Proxys auf einem iOS-Gerät
  • Einrichten eines Proxys auf einem Android-Gerät
  • Einrichten eines Proxys auf einem tvOS-Gerät

Installieren des selbstsignierten Zertifikats

Wenn Sie mitmproxy starten, akzeptiert Ihr Gerät zu diesem Zeitpunkt HTTP-Datenverkehr, lehnt jedoch alle HTTPS-Anforderungen ab, die nicht direkt von der Server. Der Grund ist einfach: Ihr Gerät akzeptiert kein selbstsigniertes Zertifikat, es sei denn, Sie bitten es darum.

Um HTTPS-Anfragen abzufangen, müssen wir das von mitmproxy verwendete Zertifikat auf dem Zielgerät festlegen. Auf diese Weise kann Ihr Gerät gesicherte Anforderungen von Ihrem Computer anstelle des realen Servers akzeptieren.

Die Komplexität der Installation eines selbstsignierten Zertifikats hängt wirklich von der Art des Geräts ab, das Sie überprüfen müssen. Grundsätzlich geht es von “ sehr einfach “ bis “ nicht möglich „.

Folgen Sie je nach Zielgerät einfach dem entsprechenden Unter-Tutorial :

  • Installieren eines selbstsignierten Zertifikats auf einem iOS-Gerät
  • Installieren eines selbstsignierten Zertifikats auf einem Android-Gerät
  • Installieren eines selbstsignierten Zertifikats auf einem tvOS-Gerät

 Zertifikat

Abfangen von Anrufen

Sobald das Zertifikat installiert ist, können Sie Anrufe abfangen. Sie können mitmproxy erneut starten mit :

mitmproxy

Öffnen Sie auf dem Zielgerät eine App und prüfen Sie, ob neue Zeilen im Terminal angezeigt werden.

mitmproxy

Wenn Sie Anfragen sehen, dann herzlichen Glückwunsch! Alles ist eingerichtet und Sie können den Webverkehr über Ihr Telefon oder Tablet überprüfen.

Fehlerbehebung

Wenn nichts angezeigt wird und das Zielgerät keine Internetverbindung zu haben scheint, sollten Sie Folgendes überprüfen :

  • befinden sich sowohl der Computer, auf dem mitmproxy ausgeführt wird, als auch das Zielgerät im selben Netzwerk?
  • haben Sie versucht, mitmproxy neu zu starten?
  • Sind die Proxy-Einstellungen auf dem Zielgerät korrekt eingestellt?
  • Haben Sie das selbstsignierte Zertifikat auf dem Zielgerät aktiviert?

Um weiter zu gehen

Jetzt sollten Sie alles wissen, was Sie brauchen, um mitmproxy zu installieren und Ihr Zielgerät zu konfigurieren. Wenn Sie weiter gehen möchten, schauen Sie sich die folgenden Beiträge an :

  • Nützliche Tipps für mitmproxy
  • Erstellen von Skripten für mitmproxy

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.