სწორი პროქსის მისამართი ხელით დაწერილ SOCKS შეტყობინებას სწორს არ ხდის. C ან C++ სტრუქტურის გაგზავნამ შეიძლება გაგზავნოს შევსება ან ჰოსტის რიგის მთელი რიცხვები, რომლებიც პროტოკოლს არასდროს მოუთხოვია.

SOCKS5 დომენური სახელის CONNECT მოთხოვნისთვის, მეთოდის მოლაპარაკებისა და ნებისმიერი არჩეული ავთენტიფიკაციის შემდეგ ეს თანმიმდევრობა მკაფიოდ სერიალიზეთ:

  1. ვერსია, ბრძანება, დაცული ბაიტი და მისამართის ტიპი
  2. დომენის სიგრძე და დომენის ბაიტები
  3. ორბაიტიანი დანიშნულების პორტი ქსელური ბაიტების რიგში

მისამართების სიგრძეები დამოკიდებულია SOCKS ვერსიაზე და მისამართის ტიპზე. ფიქსირებული სიგანის რიცხვით ველებს სჭირდებათ მათი განსაზღვრული წარმოდგენა; დომენურ სტრიქონებს აქვთ საკუთარი სიგრძის კოდირება. C სტრიქონის დამამთავრებელი არ არის ზოგადი მითითება ქსელურ შეტყობინებაზე ნულის დასამატებლად.

იმპლემენტაციის მოკლე გზაშესამოწმებელი პრობლემა
32-ბიტიანი მნიშვნელობის მინიჭება 8-ბიტიანი მაჩვენებლის მეშვეობითის არ გამოაქვს ოთხივე ბაიტი
ბუფერის მსხვილ მთელ რიცხვის მაჩვენებლად გარდაქმნაგასწორება და ბაიტების რიგი კვლავ უნდა დამუშავდეს
ვივარაუდოთ, რომ ერთი წაკითხვა ან ჩაწერა ერთი შეტყობინებააTCP-ს შეუძლია გადასცეს პროტოკოლის თანმიმდევრობის მხოლოდ ნაწილი

შეადარეთ თითოეული ველი განზრახ დანიშნულებას და დაამუშავეთ ნაწილობრივი I/O. ორი ბაიტის მიღება არ ამტკიცებს, რომ მთელი პასუხი ჩამოვიდა. ამ საზღვრების შემოწმებამ შეიძლება განასხვავოს დამახინჯებული მოთხოვნა სერვერისგან, რომელიც უარყოფს სწორად აღწერილ კავშირს.

დაკავშირებული სტატიები