Pole USERID w SOCKS4
Wyjaśnia pole USERID w SOCKS4 i dlaczego jego interpretacja zależy od serwera, a nie od uwierzytelniania nazwą użytkownika/hasłem SOCKS5.
SOCKS4 zawiera ciąg USERID o zmiennej długości zakończony bajtem zerowym. Serwer interpretuje ten identyfikator zgodnie ze swoją polityką; protokół nie prowadzi po nim podnegocjacji nazwy użytkownika/hasła SOCKS5.
Żądanie SOCKS4 CONNECT do adresu dokumentacji 203.0.113.8, port 443, z pustym USERID wygląda tak:
04 01 01 bb cb 00 71 08 00
Dziewiąty bajt, 0x00, kończy puste pole. To nie znak 0, którego wartość ASCII wynosi 0x30. Pominięcie go pozostawia USERID niezakończony.
Czego oczekuje serwer
Pusty identyfikator może być właściwy, gdy usługa nie wymaga żadnego. Jeśli wymaga określonego identyfikatora lub innego mechanizmu dostępu, postępuj zgodnie z jej udokumentowaną polityką. Podana nazwa ustanawia tożsamość tylko wtedy, gdy serwer ją zweryfikuje.
SOCKS4a rozszerza obsługę nazwy hosta docelowego; nie dodaje uwierzytelniania SOCKS5. Usługa wymagająca konta SOCKS5 potrzebuje zgodnego klienta i metody. Umieszczenie hasła w USERID SOCKS4 nie może zastąpić tej wymiany i może ujawnić niezwiązane poświadczenie.
W przypadku odmowy sprawdź osobno wersję SOCKS, żądany cel i politykę użytkownika.