'n Geldige proxy-adres maak nie 'n handgeskrewe SOCKS-boodskap geldig nie. Om 'n C- of C++-struktuur te stuur, kan opvulling of heelgetalle in gasheervolgorde stuur wat die protokol nooit aangevra het nie.

Vir 'n SOCKS5-domeinnaam-CONNECT-versoek, serialiseer hierdie volgorde eksplisiet ná metode-onderhandeling en enige gekose verifikasie:

  1. Weergawe, opdrag, gereserveerde greep en adrestipe
  2. Domeinlengte en domeingrepe
  3. Die tweegreep-bestemmingpoort in netwerkgreeporde

Adreslengtes hang af van die SOCKS-weergawe en adrestipe. Numeriese velde met vaste breedte benodig hul gespesifiseerde voorstelling; domeinstringe het hul eie lengte-enkodering. 'n C-string-terminator is nie 'n algemene opdrag om 'n nul by die draadboodskap te voeg nie.

ImplementeringskortpadProbleem om te kontrolleer
Om 'n 32-bis waarde deur 'n 8-bis wyser toe te wysDit stuur nie al vier grepe uit nie
Om 'n buffer na 'n groter heelgetalwyser te castBelyning en greeporde moet steeds hanteer word
Om aan te neem een lees of skryf is een boodskapTCP kan slegs 'n deel van die protokolvolgorde oordra

Vergelyk elke veld met die beoogde bestemming en hanteer gedeeltelike I/O. Om twee grepe te ontvang, bewys nie dat die hele antwoord aangekom het nie. Deur daardie grense te ondersoek, kan 'n misvormde versoek onderskei word van 'n bediener wat 'n korrek beskryfde verbinding weier.

Verwante artikels