Una prova de proxy ha de fer fallar la connexió directa
Separeu la xarxa de prova de l’aplicació de l’sortida del proxy, perquè una connexió directa no detectada no faci que una prova de proxy sembli correcta.
Un proxy local que escolta al costat d’una aplicació no reprodueix una xarxa que requereix accés mitjançant proxy. L’aplicació pot ignorar el proxy configurat, connectar-se directament i tot i així informar d’èxit.
Separeu la xarxa de l’aplicació del camí de sortida del proxy. Una disposició basada en contenidors posa l’aplicació només en una xarxa interna i dona al proxy una segona xarxa de sortida. En una definició de Compose existent, els enllaços de xarxa poden semblar així:
services:
app:
networks: [clients]
proxy:
networks: [clients, egress]
networks:
clients:
internal: true
egress: {}
Aquest és un fragment de xarxa per a serveis ja definits. Configureu el proxy d’reenviament aprovat i el client real de l’aplicació per separat. Docker documenta les xarxes internes com a aïllades de l’exterior; en aquesta disposició només el proxy té la xarxa exterior addicional.
Incloeu un cas negatiu sense ús de proxy: la sol·licitud externa de l’aplicació hauria de fallar. En un proxy HTTP autenticat, un compte rebutjat hauria de produir el seu error d’autenticació, mentre que el compte acceptat hauria d’arribar a l’objectiu amb una observació corresponent del proxy.
Proveu per separat els casos permesos i denegats del proxy. Manteniu l’aplicació fora d’altres xarxes externes i eviteu afegir un mode de xarxa d’amfitrió que eludeixi el proxy. Una sol·licitud correcta és una prova útil només quan la ruta prevista és la que la prova posa a disposició.