Veljaven naslov proxy ne naredi ročno napisanega sporočila SOCKS veljavnega. Pošiljanje strukture C ali C++ lahko pošlje zapolnitev ali cela števila v vrstnem redu gostitelja, ki jih protokol nikoli ni zahteval.

Za zahtevo SOCKS5 CONNECT z imenom domene to zaporedje izrecno serializirajte po pogajanju o metodi in morebitni izbrani overitvi:

  1. Različica, ukaz, rezervirani bajt in vrsta naslova
  2. Dolžina domene in bajti domene
  3. Dvobajtna ciljna vrata v omrežnem vrstnem redu bajtov

Dolžine naslovov so odvisne od različice SOCKS in vrste naslova. Številska polja s fiksno širino potrebujejo predpisano predstavitev; nizi domen imajo svoje lastno kodiranje dolžine. Zaključni znak niza C ni splošno navodilo za dodajanje ničle omrežnemu sporočilu.

Bližnjica pri izvedbiTežava za preverjanje
Dodeljevanje 32-bitne vrednosti prek 8-bitnega kazalcaNe izpiše vseh štirih bajtov
Pretvorba medpomnilnika v kazalec na večje celo številoPoravnavo in vrstni red bajtov je treba še vedno obravnavati
Predpostavka, da je eno branje ali pisanje eno sporočiloTCP lahko prenese le del zaporedja protokola

Primerjajte vsako polje z nameravanim ciljem in obravnavajte delni I/O. Prejem dveh bajtov ne dokazuje, da je prispel celoten odgovor. Preverjanje teh meja lahko razlikuje okvarjeno zahtevo od strežnika, ki zavrača pravilno opisano povezavo.

Sorodni članki