Ein Proxytest muss den direkten Ausweichweg scheitern lassen
Trennen Sie das Testnetz der Anwendung vom Ausgang des Proxys, damit eine unbemerkte Direktverbindung einen Proxytest nicht erfolgreich erscheinen lässt.
Ein lokaler Proxy neben einer Anwendung bildet kein Netz nach, das Proxyzugriff erfordert. Die Anwendung kann den konfigurierten Proxy ignorieren, direkt verbinden und trotzdem Erfolg melden.
Trennen Sie das Netz der Anwendung vom ausgehenden Weg des Proxys. Eine containerbasierte Anordnung legt die Anwendung nur in ein internes Netz und gibt dem Proxy ein zweites Ausgangsnetz. In einer bestehenden Compose-Definition können die Netzanbindungen so aussehen:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Dies ist ein Netzwerkfragment für bereits definierte Dienste. Konfigurieren Sie den freigegebenen Weiterleitungsproxy und den tatsächlichen Client der Anwendung getrennt. Docker dokumentiert interne Netze als nach außen isoliert; nur der Proxy hat in dieser Anordnung das zusätzliche Außennetz.
Nehmen Sie einen Negativfall ohne Proxy-Nutzung auf: Die externe Anfrage der Anwendung muss scheitern. Bei einem authentifizierten HTTP-Proxy soll ein abgelehntes Konto seinen Authentifizierungsfehler erzeugen, während das akzeptierte Konto das Ziel mit einer entsprechenden Proxy-Beobachtung erreicht.
Prüfen Sie die erlaubten und die abgelehnten Fälle des Proxys getrennt. Halten Sie die Anwendung von anderen externen Netzen fern und vermeiden Sie einen umgehenden Host-Netzmodus. Eine erfolgreiche Anfrage ist erst dann ein brauchbarer Beleg, wenn der Test genau den beabsichtigten Weg bereitstellt.