Een extra Zeilensprung kann TLS no CONNECT briechen
Préift d'HTTP-Header-Framing wann en handgeschriwwene Proxy-Connector en Tunnel opmécht an direkt en TLS-Dekodéierfehler gëtt.
Wann CONNECT 200 zréckgëtt an TLS direkt net dekodéiere kann, préift d'Grenzbäiten am Connector ier Dir Zertifikater oder Ciferen ännert.
En generéierten Autorisatiounswäert kann schonn op enger neier Zeil ophalen. Eng aner Zeilenendung derbäi setzen kann d'HTTP-Headere ze fréi ophalen an e beabsichtegt Host-Feld oder aneren einfachen Text hannert der Ufro loossen.
Eng minimal HTTP/1.1 CONNECT-Ufro benotzt CRLF tëscht den Zeilen an eng eidel Zeil um Enn:
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"Setzt all Autorisatiounsfeld virun déi lescht eidel Zeil, ouni agebaute Zeilbroch. A Python steet "\n" fir eng nei Zeil; eng roh String mat engem Backslash an dem Buschtaf n net. Préift wéi eng Bäiten en Encodéierungshelfer produzéiert ier Dir se probéiert ewechzehuelen—méi al Hëllefen konnte Zeilbréch derbäisetzen.
Nodeems CONNECT gelungen ass, gehéieren déi reschtlech Bäiten zum Tunnelprotokoll. Verluerene kloeren Text kann e Peer erreechen, deen TLS erwaart. Den erfollegräiche Status kann Bäiten, déi schonn no enger falscher Ufro an der Schlaang stinn, net reparéieren.
Préift och d'Empfangsgrenz. Liest déi komplett Proxy-Antwert ier Dir de Socket un TLS iwwergitt, behandelt deelweis Liesungen a bewahrt alles wat iwwer d'Headere lieweg gelies gëtt. Eng Socketliesung muss net eng ganz Noriicht enthalen.
Wann dëse Parser Ären ass, vergläicht eng redigéiert Bäite-Duerstellung mat der Wire-Grammatik; haalt Längt an Zeilgrenze sichtbar wärend Dir d'Passwuert verstoppt. Fir eng Applikatioun déi just eng Proxyverbindung brauch, vermeit en ënnerhalene Connector d'Noutwendegkeet, dësen Framing-Code ze besëtzen.