Ett proxytest ska få den direkta anslutningen att misslyckas
Separera applikationens testnät från proxyns utgång så att en obemärkt direkt anslutning inte kan få ett proxytest att verka lyckat.
En lokal proxy som lyssnar bredvid en applikation återskapar inte ett nätverk som kräver proxyåtkomst. Applikationen kan ignorera den konfigurerade proxyn, ansluta direkt och ändå rapportera framgång.
Separera applikationens nät från proxyns utgående väg. En containerbaserad uppställning placerar applikationen bara på ett internt nät och ger proxyn ett andra utgående nät. I en befintlig Compose-definition kan nätverksanslutningarna se ut så här:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Detta är ett nätverksfragment för redan definierade tjänster. Konfigurera den godkända vidarebefordrande proxyn och applikationens faktiska klient var för sig. Docker dokumenterar interna nät som isolerade utifrån; i den här uppställningen är det bara proxyn som har det extra yttre nätet.
Ta med ett negativt fall utan proxyanvändning: applikationens externa begäran ska misslyckas. För en autentiserad HTTP-proxy ska ett avvisat konto ge sitt autentiseringsfel, medan det accepterade kontot ska nå målet med en motsvarande proxyobservation.
Testa proxyns tillåtna och avvisade fall var för sig. Håll applikationen borta från andra externa nät och lägg inte till ett värdnätsläge som kringgår proxyn. En lyckad begäran är först ett användbart bevis när testet tillhandahåller just den avsedda vägen.