Deixeu la destinació de Java SOCKS sense resoldre
Eviteu el DNS local de destinació en crear una connexió Java SOCKS conservant el nom d'amfitrió objectiu.
Una connexió SOCKS pot fallar localment abans que el proxy tingui l'oportunitat de resoldre la destinació. Comproveu si el vostre codi ha resolt l'objectiu mentre construïa l'adreça del sòcol.
Per a un sòcol Java SOCKS, conserveu el nom d'amfitrió objectiu amb una adreça de destinació sense resoldre:
Proxy proxy = new Proxy(Proxy.Type.SOCKS,
new InetSocketAddress("203.0.113.10", 1080));
Socket socket = new Socket(proxy);
socket.connect(InetSocketAddress.createUnresolved(
"destination.example", 443), 5000);El punt final i el nom d'amfitrió són marcadors de posició; utilitzeu el vostre servei SOCKS5 o un candidat de la llista de proxys SOCKS5 per a proves permeses de destinacions públiques. La distinció important és entre resoldre el proxy per poder-hi arribar i conservar el nom de destinació per a l'intercanvi SOCKS.
Un cop connectat, un client HTTPS encara necessita una sessió TLS per al nom d'amfitrió de destinació. Un embolcall TLS no hauria d'utilitzar el nom d'amfitrió del proxy com a identitat de l'igual.
Comproveu també el codi de nivell superior: una biblioteca pot fer la seva pròpia consulta abans de cridar el vostre connector. Conservar un nom d'amfitrió en aquesta adreça de sòcol no pot desfer una consulta feta en un altre lloc de l'aplicació.