Ko CONNECT vrne 200 in TLS takoj ne more dekodirati, preverite mejne bajte v konektorju, preden zamenjate potrdila ali šifre.

Ustvarjena vrednost avtorizacije se morda že konča z novo vrstico. Dodajanje še enega konca vrstice lahko predčasno zaključi glave HTTP in za zahtevo pusti predvideno polje Host ali drugo navadno besedilo.

Minimalna zahteva HTTP/1.1 CONNECT uporablja CRLF med vrsticami in prazno vrstico na koncu:

b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"

Postavite katero koli polje avtorizacije pred to zadnjo prazno vrstico, brez vgrajenega preloma vrstice. V Pythonu "\n" predstavlja novo vrstico; surov niz z backslashem in črko n ne. Preverite, katere bajte ustvari pomočnik za kodiranje, preden jih poskusite odstraniti—starejši pomočniki so lahko dodali prelome vrstic.

Ko CONNECT uspe, ti preostali bajti pripadajo tunelskemu protokolu. Zablodelo navadno besedilo lahko doseže partnerja, ki pričakuje TLS. Uspešno stanje ne more popraviti bajtov, ki so že v čakalni vrsti po nepravilni zahtevi.

Preverite tudi mejo sprejema. Preberite celoten odgovor proxyja, preden vtičnico predate TLS, obravnavajte delne bralne operacije in ohranite vse, kar je prebrano onkraj glav. Eno branje vtičnice ni nujno eno celotno sporočilo.

Če je ta razčlenjevalnik vaš, primerjajte redigirano predstavitev bajtov z gramatiko žice; ob skrivanju gesla ohranite vidne dolžine in meje vrstic. Za aplikacijo, ki potrebuje le proxy povezavo, vzdrževan konektor prepreči potrebo po lastništvu te kode za uokvirjanje.

Sorodni članki