Déi gewéinlech HTTPS-Ufroen vun enger iOS-App kënnen an engem Debugging-Proxy erschéngen, wärend hire WebSocket-Trafic feelt. Identifizéiert als éischt den WebSocket-Transport: URLSessionWebSocketTask kann eng Proxy-Konfiguratioun op Sessiounsniveau benotzen, wärend eng Bibliothéik, déi hir eege Sockets opmécht, hir eege ënnerstëtzt Integratioun brauch. Fir eng ro Network.framework-Verbindung op iOS 17+, konfiguréiert dee eegene Proxy-Kontext vum NWConnection.

Op iOS 17 oder méi nei erstellt d'Sessioun mat engem explizitten SOCKSv5-Proxy:

import Foundation
import Network

@available(iOS 17.0, *)
func makeDebugSession() -> URLSession {
    let configuration = URLSessionConfiguration.default
    let endpoint = NWEndpoint.hostPort(
        host: "192.0.2.10", port: 8889)
    configuration.proxyConfigurations = [
        ProxyConfiguration(socksv5Proxy: endpoint)
    ]
    return URLSession(configuration: configuration)
}

Ersetzt d'Dokumentatiounsadress an de Port duerch de erreechbare SOCKS-Lauschterer vum existéierenden Debugging-Proxy. Aktivéiert dee Lauschterer an der Proxy-Applikatioun. Säin HTTP-Lauschterer kann op engem aneren Port sinn.

Erstellt de webSocketTask aus der zréckginnener Sessioun. Eng Aufgab, déi iwwer eng aner URLSession erstallt gëtt, ierft d'Iwwerschreiwung vun dëser Sessioun net. En eidelt proxyConfigurations-Array benotzt d'Systemdefaulten; et ass keng explizit Wiel vun enger direkter Route.

Erreechbarkeet a liesbar Messagen sinn getrennt Meilesteen

En physikaleschen Telefon brauch eng Adress, déi de Debugging-Computer erreecht. Op deem Telefon bezeechent 127.0.0.1 den Telefon selwer. Kontrolléiert d'Lauschterer-Interface an den erlaabten Client-Zougang vum Proxy, wann d'Verbindung ni dohinner kënnt.

Eng SOCKS-Route dréit d'Verbindung. D'Liese vum wss-Inhalt erfuerdert zousätzlech d'TLS-Inspektiouns-Astellung vum Debugging-Tool an eng passend Vertrauen op dem Apparat. Zertifikat-Pinning oder eng separat TLS-Implementatioun kënnen déi Inspektioun verhënneren, och wann den Trafic de Lauschterer erreecht.

Sicht den WebSocket-Austausch an d'Messagen, nodeems d'Verbindung opgebaut ass. Nëmmen eng Polling-Ufro vun enger Socket.IO-Applikatioun ze gesinn ass kee Beweis, datt hire spéideren WebSocket-Transport déiselwecht Route benotzt huet. Hält dës explizit Debugging-Konfiguratioun bannent der virgesinnener Entwécklungsumgebung vun der App.

Ähnlech Artikelen