Isang Karagdagang Bagong Linya ay Maaaring Sirahin ang TLS Pagkatapos ng CONNECT
Suriin ang pag-frame ng HTTP header kapag ang isang manu-manong isinulat na proxy connector ay nagbukas ng tunnel at agad na nagbigay ng TLS decode error.
Kapag ang CONNECT ay nagbalik ng 200 at ang TLS ay agad na hindi makapag-decode, suriin ang boundary bytes sa connector bago palitan ang mga sertipiko o cipher.
Ang nabuong authorization value ay maaaring nagtatapos na sa isang bagong linya. Ang pagdaragdag ng isa pang dulo ng linya ay maaaring tapusin ang mga HTTP header nang maaga, na nag-iiwan ng nilalayong Host field o iba pang plaintext sa likod ng kahilingan.
Ang minimal na HTTP/1.1 CONNECT na kahilingan ay gumagamit ng CRLF sa pagitan ng mga linya at isang blangkong linya sa dulo:
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"Ilagay ang anumang field ng awtorisasyon bago ang huling blangkong linyang iyon, nang walang naka-embed na line break. Sa Python, ang "\n" ay kumakatawan sa isang bagong linya; ang raw string na naglalaman ng backslash at titik n ay hindi. Suriin kung anong mga byte ang ginagawa ng isang coding helper bago subukang alisin ang mga ito—ang mga lumang helper ay maaaring magdagdag ng mga line break.
Kapag nagtagumpay ang CONNECT, ang mga natitirang byte na iyon ay pag-aari ng tunnel protocol. Ang naligaw na plaintext ay maaaring makarating sa isang peer na umaasa ng TLS. Hindi kayang ayusin ng matagumpay na status ang mga byte na nakapila na pagkatapos ng isang malformed na kahilingan.
Suriin din ang hangganan ng pagtanggap. Basahin ang buong tugon ng proxy bago ibigay ang socket sa TLS, pangasiwaan ang mga partial read at pangalagaan ang anumang nabasa sa kabila ng mga header. Ang isang pagbasa ng socket ay hindi kailangang maglaman ng isang buong mensahe.
Kung pag-aari mo ang parser na ito, ihambing ang isang redacted na representasyon ng byte sa gramatika ng wire; panatilihing nakikita ang mga haba at hangganan ng linya habang itinatago ang password. Para sa isang application na nangangailangan lamang ng koneksyon sa proxy, iniiwasan ng isang well-maintained na connector na magkaroon ng code ng pag-frame na ito.