השארו את יעד ה-Java SOCKS לא פתור
הימנעו מ-DNS מקומי של היעד בעת יצירת חיבור Java SOCKS על ידי שמירת שם המארח של היעד.
חיבור SOCKS יכול להיכשל באופן מקומי לפני שהפרוקסי מספיק לפתור את היעד. בדקו אם הקוד שלכם פתר את היעד בזמן בניית כתובת ה-socket.
עבור socket של Java SOCKS, שמרו על שם המארח של היעד עם כתובת יעד לא פתורה:
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);נקודת הקצה ושם המארח הם מצייני מקום; השתמשו בשירות ה-SOCKS5 שלכם או במועמד מתוך רשימת פרוקסי SOCKS5 לבדיקות מותרות של יעדים ציבוריים. ההבחנה החשובה היא בין פתרון הפרוקסי כדי שתוכלו להגיע אליו לבין שמירת שם היעד עבור חילופי ה-SOCKS.
לאחר החיבור, לקוח HTTPS עדיין זקוק ל-הפעלת TLS עבור שם המארח של היעד. עטיפת TLS לא צריכה להשתמש בשם המארח של הפרוקסי כזהות העמית.
בדקו גם קוד ברמה גבוהה יותר: ספרייה יכולה לבצע חיפוש משלה לפני שהיא קוראת למחבר שלכם. שמירת שם מארח בכתובת ה-socket הזו לא יכולה לבטל חיפוש שנעשה במקום אחר ביישום.