Een proxytest moet de directe verbinding laten mislukken
Scheid het testnetwerk van de applicatie van de uitgang van de proxy, zodat een onopgemerkte directe verbinding een proxytest niet succesvol kan laten lijken.
Een lokale proxy die naast een applicatie luistert, reproduceert geen netwerk dat proxytoegang vereist. De applicatie kan de geconfigureerde proxy negeren, rechtstreeks verbinden en toch succes melden.
Scheid het netwerk van de applicatie van de uitgaande route van de proxy. Eén op containers gebaseerde opstelling plaatst de applicatie alleen op een intern netwerk en geeft de proxy een tweede uitgaand netwerk. In een bestaande Compose-definitie kunnen de netwerkaansluitingen er zo uitzien:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Dit is een netwerkfragment voor al gedefinieerde services. Configureer de goedgekeurde doorstuurproxy en de werkelijke client van de applicatie apart. Docker documenteert interne netwerken als van buitenaf geïsoleerd; in deze opstelling heeft alleen de proxy het extra buitenliggende netwerk.
Neem een negatief geval op zonder proxygebruik: het externe verzoek van de applicatie hoort te mislukken. Bij een geauthenticeerde HTTP-proxy hoort een geweigerd account zijn authenticatiefout te geven, terwijl het geaccepteerde account het doel moet bereiken met een overeenkomstige proxywaarneming.
Test de toegestane en de geweigerde gevallen van de proxy apart. Houd de applicatie weg van andere externe netwerken en voeg geen hostnetwerkmodus toe die de proxy omzeilt. Een geslaagd verzoek is pas bruikbaar bewijs als de test precies de bedoelde route beschikbaar stelt.