Ինչու C կառուցվածքը կարող է վատ SOCKS հարցում առաջացնել
Ստուգեք դաշտերի բացահայտ լայնությունները, բայթերի հերթականությունը և հոսքային I/O-ն՝ կոմպիլյատորի դասավորությունը ցանցային ձևաչափ համարելու փոխարեն։
Վավեր պրոքսի հասցեն ձեռքով գրված SOCKS հաղորդագրությունը վավեր չի դարձնում։ C կամ C++ կառուցվածք ուղարկելը կարող է ուղարկել լցոնում կամ հոսթի կարգով ամբողջ թվեր, որոնք արձանագրությունը երբեք չի պահանջել։
SOCKS5 դոմենային անվամբ CONNECT հարցման համար սերիալացրեք այս հաջորդականությունը բացահայտորեն մեթոդի բանակցությունից և ընտրված ցանկացած նույնականացումից հետո։
- Տարբերակ, հրաման, վերապահված բայթ և հասցեի տեսակ
- Դոմենի երկարությունը և դոմենի բայթերը
- Երկու բայթանոց նպատակակետ պորտը ցանցային բայթերի կարգով
Հասցեների երկարությունները կախված են SOCKS տարբերակից և հասցեի տեսակից։ Ֆիքսված լայնության թվային դաշտերը պահանջում են իրենց սահմանված ներկայացումը. դոմենային տողերն ունեն իրենց երկարության կոդավորումը։ C տողի ավարտիչը ընդհանուր հրահանգ չէ ցանցային հաղորդագրությանը զրո ավելացնելու համար։
| Իրականացման կարճ ճանապարհ | Ստուգման ենթակա խնդիր |
|---|---|
| 32-բիթ արժեք վերագրել 8-բիթ ցուցիչի միջոցով | Այն չի արտածում բոլոր չորս բայթերը |
| Բուֆերը ձուլել ավելի մեծ ամբողջ թվի ցուցիչի | Հավասարեցումը և բայթերի կարգը դեռ պետք է մշակվեն |
| Ենթադրել, որ մեկ ընթերցումը կամ գրառումը մեկ հաղորդագրություն է | TCP-ն կարող է փոխանցել արձանագրության հաջորդականության միայն մի մասը |
Համեմատեք յուրաքանչյուր դաշտ նախատեսված նպատակակետի հետ և մշակեք մասնակի I/O-ն։ Երկու բայթ ստանալը չի ապացուցում, որ ամբողջ պատասխանը հասել է։ Այդ սահմանների ստուգումը կարող է տարբերակել աղավաղված հարցումը ճիշտ նկարագրված կապը մերժող սերվերից։