SOCKS4 містить рядок USERID змінної довжини, що завершується нульовим байтом. Сервер інтерпретує цей ідентифікатор згідно зі своєю політикою; протокол не супроводжує його субперемовинами імені користувача/пароля SOCKS5.

Запит SOCKS4 CONNECT до адреси документації 203.0.113.8, порт 443, з порожнім USERID має вигляд:

04 01 01 bb cb 00 71 08 00

Дев'ятий байт 0x00 завершує порожнє поле. Це не символ 0, значення ASCII якого дорівнює 0x30. Якщо його пропустити, USERID залишиться незавершеним.

Чого очікує сервер

Порожній ідентифікатор може бути доречним, коли служба його не вимагає. Якщо вона вимагає певний ідентифікатор або інший механізм доступу, дотримуйтеся її задокументованої політики. Надане ім'я встановлює особу лише тоді, коли сервер його перевіряє.

SOCKS4a розширює обробку імені хоста призначення; він не додає автентифікацію SOCKS5. Службі, що вимагає обліковий запис SOCKS5, потрібні сумісний клієнт і метод. Внесення пароля в USERID SOCKS4 не може замінити цей обмін і може розкрити сторонні облікові дані.

У разі відмови перевірте окремо версію SOCKS, запитане призначення та політику користувача.

Схожі статті