En gyldig proxyadresse gjør ikke en håndskrevet SOCKS-melding gyldig. Å sende en C- eller C++-struct kan sende utfylling eller heltall i vertsrekkefølge som protokollen aldri ba om.

For en SOCKS5 CONNECT-forespørsel med domenenavn, serialiser denne sekvensen eksplisitt etter metodeforhandling og eventuell valgt autentisering:

  1. Versjon, kommando, reservert byte og adressetype
  2. Domenelengde og domenebytes
  3. Den to-byte destinasjonsporten i nettverksbyte-rekkefølge

Adresselengder avhenger av SOCKS-versjonen og adressetypen. Numeriske felt med fast bredde trenger sin angitte representasjon; domenestrenger har sin egen lengdekoding. En C-strengterminator er ikke en generell instruks om å legge til en null i trådmeldingen.

ImplementasjonssnarveiProblem å kontrollere
Tilordne en 32-bits verdi gjennom en 8-bits pekerDen sender ikke ut alle fire bytene
Caste en buffer til en peker til et større heltallJustering og byte-rekkefølge må fortsatt håndteres
Anta at én lesing eller skriving er én meldingTCP kan bare overføre en del av protokollsekvensen

Sammenlign hvert felt med den tiltenkte destinasjonen og håndter delvis I/O. Å motta to bytes beviser ikke at hele svaret er kommet. Ved å undersøke disse grensene kan man skille en feilaktig forespørsel fra en server som avviser en korrekt beskrevet tilkobling.

Relaterte artikler