Wie kann ich in Charles Proxy einen Request automatisch umschreiben oder modifizieren?

Melden
  1. Umschreiben von Requests mit Rewrite Rules
  2. Mehr Flexibilität mit Charles Scripting (JavaScript)
  3. SSL-Proxying und technische Voraussetzungen
  4. Zusammenfassung

Charles Proxy ist ein leistungsfähiges Tool, das u. a. das Abfangen und Modifizieren von HTTP(S)-Requests und Responses ermöglicht. Wenn du Requests automatisch umschreiben oder modifizieren möchtest, kannst du dafür sogenannte Rewrite Rules (Umschreibregeln) verwenden oder bei komplexeren Anforderungen die Charles Scripting-Funktion einsetzen. Beide Methoden erlauben eine automatische Anpassung, bevor die Requests zum Zielserver weitergeleitet werden.

Umschreiben von Requests mit Rewrite Rules

Die einfachste und am häufigsten verwendete Methode, um Requests automatisch zu modifizieren, ist die Nutzung der integrierten Rewrite-Funktion von Charles Proxy. Diese erlaubt es, anhand bestimmter Kriterien wie URL, Header, Parameter oder Körperinhalte Änderungen vorzunehmen.

Um eine Rewrite-Regel zu erstellen, öffne zunächst Charles Proxy und gehe im Menü auf Tools > Rewrite.... Im nun geöffneten Fenster kannst du eine neue Regelgruppe anlegen und darin eine oder mehrere Regeln definieren.

Beim Erstellen einer Regel kannst du Bedingungen festlegen wie den Hostnamen, HTTP-Methode oder Pfad, um zu bestimmen, auf welche Requests die Regel angewandt wird. Anschließend definierst du, welche Änderungen vorgenommen werden sollen. Beispiele für solche Änderungen sind das Ersetzen von URL-Teilen, Hinzufügen oder Ändern von Headern oder das Modifizieren des Request-Bodys.

Ein Beispiel: Du möchtest alle Anfragen an https://example.com/api/v1/user so umschreiben, dass stattdessen /api/v2/user angesprochen wird. In einer Rewrite-Regel würdest du eine Ersetzung der URL im Pfad vornehmen, also /api/v1/user durch /api/v2/user ersetzen. Charles sorgt dafür, dass beim Abfangen der Request der ursprüngliche Pfad automatisch verändert wird.

Mehr Flexibilität mit Charles Scripting (JavaScript)

Wenn die Anforderungen komplexer sind oder du z. B. dynamische Modifikationen basierend auf dem Inhalt eines Requests implementieren möchtest, kannst du Charles Scripting verwenden. Seit Version 4 unterstützt Charles Proxy ein Skripting-Feature, das mit JavaScript arbeitet und auf Ereignisse wie Request- und Response-Verarbeitung reagiert.

Das Scripting erlaubt dir, eigene Funktionen zu schreiben, die während des Proxy-Vorgangs ausgeführt werden. So kannst du etwa jede Anfrage analysieren, entscheiden, ob sie geändert werden soll, und Änderungen am Header, dem Body oder der URL vornehmen.

Um ein Script zu verwenden, öffnest du in Charles das Fenster über Tools > Script Editor.... Dort kannst du JavaScript-Code einfügen, der eingehende Requests beeinflusst. Ein einfaches Beispielskript könnte so aussehen:

function onBeforeRequest(session) { if (session.host === "example.com" && session.path === "/api/v1/user") { session.path = "/api/v2/user"; // Pfad ändern session.setRequestHeader("X-Custom-Header", "MeinWert"); // Header hinzufügen }}

Dieses Script wird vor dem Senden des Requests ausgeführt. Die Anpassung eines Requests anhand genau definierter Bedingungen ermöglicht umfangreiche Automatisierungen, die mit Rewrite Rules allein nicht realisierbar sind.

SSL-Proxying und technische Voraussetzungen

Da viele moderne Webanwendungen HTTPS verwenden, musst du in Charles auch SSL-Proxying aktivieren, um verschlüsselte Requests betrachten und modifizieren zu können. Die Einrichtung hierzu erfolgt unter Proxy > SSL Proxying Settings.... Dort kannst du Hosts und Ports eintragen, für die Charles die SSL-Verbindungen entschlüsseln soll.

Außerdem ist es wichtig, dass das Charles-Zertifikat auf dem jeweiligen Gerät oder Computer installiert ist, damit keine Warnungen erscheinen und die Verbindung funktioniert.

Zusammenfassung

Um Requests in Charles Proxy automatisch umzuschreiben oder zu modifizieren, hast du im Wesentlichen zwei Optionen: Zum einen die Rewrite Rules, mit denen du einfach und schnell basierend auf Mustern Header, URL oder Body anpassen kannst. Zum anderen das deutlich mächtigere Charles Scripting, welches dir durch JavaScript die volle Kontrolle über die Requests gibt und dynamische Änderungen ermöglicht.

Beide Methoden ergänzen sich gut, und je nach Komplexität deiner Anforderungen kannst du die für dich passende auswählen. Die richtigen Einstellungen beim SSL-Proxying und das Platzieren des Charles-Zertifikats sind dabei wichtige Grundlagen, um HTTPS-Requests bearbeiten zu können.

Mit diesen Werkzeugen kannst du auch komplexe Szenarien für Testing, Debugging oder das Manipulieren von Datenflüssen sehr einfach automatisieren.

0

Kommentare