לבקש מ-proxy של SOCKS להתחבר לשם מארח אינו אותו דבר כמו לבקש ממנו להחזיר את רשומות ה-DNS של אותו שם.

ה-proxy יכול לפתור את השם כחלק מהקמת החיבור המבוקש. הוא יכול גם להעביר את המשימה ל-upstream מתאים אחר. הלקוח מקבל תגובת SOCKS המתארת את תוצאת החיבור, ולא תגובת DNS כללית.

ב-CONNECT, הכתובת והפורט הקשורים בתגובה מתארים את הכריכה בצד השרת כפי שהפרוטוקול מגדיר אותה. אל תתייחסו ל-BND.ADDR כאל עותק מובטח של ה-IP שנפתר של היעד.

אם היישום זקוק רק לחיבור, הוא יכול להשתמש בזרם הנוצר בלי לדעת איזו כתובת יעד בחר ה-proxy. אם הוא זקוק לנתוני ה-DNS עצמם, בחרו ממשק בעל יכולת DNS אמיתית עם מיקום ומדיניות ה-resolver המיועדים.

הבחנה זו גם מונעת בדיקת IP מטעה: הכתובת הקשורה של ה-proxy, כתובת IP של יעד, והיציאה הציבורית הפונה לאתר הם ערכים שונים. אין לסמן אחד בשם האחר רק משום שהוא הופיע באותה לחיצת יד.

מאמרים קשורים