Нэг нэмэлт шинэ мөр CONNECT-ийн дараа TLS-ийг эвдэж болно
Гараар бичсэн прокси холбогч туннель нээж, даруй TLS декодлох алдаа гаргах үед HTTP толгойн бүтцийг шалгана уу.
CONNECT 200 буцааж, TLS даруй декодлож чадахгүй бол гэрчилгээ эсвэл шифрийг солихоос өмнө холбогч дахь хилийн байтуудыг шалгана уу.
Үүсгэсэн зөвшөөрлийн утга аль хэдийн шинэ мөрөөр төгсөж болно. Өөр мөрийн төгсгөл нэмэх нь HTTP толгойг эрт дуусгаж, зориудын Host талбар эсвэл бусад энгийн текстийг хүсэлтийн ард үлдээж болно.
Хамгийн бага HTTP/1.1 CONNECT хүсэлт мөрүүдийн хооронд CRLF, төгсгөлд хоосон мөр ашигладаг:
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"Аливаа зөвшөөрлийн талбарыг тэр эцсийн хоосон мөрийн өмнө байрлуул, дотор нь мөр таслалтгүйгээр. Python-д "\n" шинэ мөрийг илэрхийлнэ; backslash болон n үсэг агуулсан түүхий мөр илэрхийлэхгүй. Тэдгээрийг арилгахыг оролдохын өмнө кодлох туслах ямар байт үүсгэдэггүйг шалгана уу—хуучин туслахууд мөр таслалт нэмж болдог байв.
CONNECT амжилттай болсны дараа үлдсэн байтууд туннелийн протоколд хамаарна. Төөрсөн энгийн текст TLS хүлээж буй талд хүрч болно. Амжилттай төлөв буруу хүсэлтийн дараа дараалалд орсон байтуудыг засах боломжгүй.
Хүлээн авах хилийг ч шалгана уу. Socket-ыг TLS-д өгөхөөс өмнө проксийн бүрэн хариуг уншина уу, хэсэгчилсэн уншилтыг зохицуулж, толгойноос цааш уншсан бүгдийг хадгална уу. Нэг socket уншилт нэг бүтэн мессеж агуулсан байх шаардлагагүй.
Хэрэв энэ задлагч таных бол редакцлагдсан байт дүрслэлийг утасны дүрэмтэй харьцуул; нууц үгийг нуухын зэрэгцээ урт болон мөрийн хязгаарыг харагдахуйц байлга. Зөвхөн прокси холболт хэрэгтэй програмын хувьд засварласан холбогч энэ хүрээний кодыг эзэмших шаардлагаас зайлсхийлнэ.