Localhost-Server von der UWP-App-Netzwerkisolation ausnehmen?

882
twisteroid ambassador

Standardmäßig können UWP-Apps nicht auf Netzwerkressourcen auf demselben Computer zugreifen. Diese Einschränkung kann mit dem CheckNetIsolation.exeDienstprogramm pro App aufgehoben werden . Dies wird an vielen Stellen im Web beschrieben:

https://stackoverflow.com/questions/34589522/cant-see-localhost-from-uwp-app https://docs.microsoft.com/de-de/windows/uwp/debug-test-perf/deploying-and -debugging-uwp-apps # Debugging-Optionen

Die Loopback-Ausnahme kann für UWP-Apps einzeln gewährt werden. In meinem Anwendungsfall möchte ich einen systemweiten Proxy-Server verwenden, der auf localhost läuft (Internetoptionen -> Verbindungen -> Einstellungen für lokales Netzwerk (LAN) -> Proxy-Server). Das bedeutet, dass ich für jede meiner UWP-Apps die Loopback-Ausnahme gewähren muss, andernfalls können sie überhaupt nicht auf das Internet zugreifen.

Gibt es eine Möglichkeit, diese Netzwerkisolation zu umgehen, indem Sie auf der Serverseite etwas unternehmen, anstatt jeder UWP-App die Loopback-Ausnahme zu gewähren?

Ich stelle mir beispielsweise vor, eine virtuelle Maschine auf meinem Computer auszuführen und meinen Proxyserver in der virtuellen Maschine auszuführen, damit UWP-Apps eine Verbindung zum Proxyserver herstellen können, da der Proxyserver nicht auf einem Server wartet Loopback-Schnittstelle. Gibt es eine andere Methode / einen Hack, die ähnlich funktionieren wird?

Dinge, die ich ausprobiert habe, funktionieren nicht:

  • Binden des Proxyservers an eine andere IP-Adresse in 127.0.0.0/8 anstelle von 127.0.0.1
  • Hinzufügen eines Microsoft Loopback-Adapters, Zuweisen einer IP-Adresse und Binden meines Proxyservers an diese Adresse
1

1 Antwort auf die Frage

0
twisteroid ambassador

Es gibt tatsächlich eine Möglichkeit, ohne jeder App die Ausnahme zu gewähren oder den Server auf einer separaten (realen oder virtuellen) Maschine auszuführen: Verwenden Sie Netzwerk-Tricks, um einen localhost-Server so aussehen zu lassen, als würde er auf einem anderen System laufen.

Ich habe eine Lösung mit dem WinDivert-Framework implementiert. Kurz gesagt, "reflektiert" er Netzwerkpakete, die für eine bestimmte "Reflect-Adresse" bestimmt sind, zurück in Richtung localhost, sodass ein Server, der auf localhost läuft, unter der Reflect-Adresse erreicht werden kann. Auf diese Weise können UWP-Apps frei auf den Server zugreifen.

Es sollte möglich sein, ähnliche Lösungen mit anderen Technologien zu implementieren, die Netzwerkpakete filtern und injizieren können.