Dokończ analizę nagłówków CONNECT przed przekazaniem strumienia klienta
Serwer proxy, który przekazuje dopiero po wierszu żądania, może wysłać własny nagłówek Host do portu TLS celu.
Po wierszu żądania CONNECT te bajty nadal należą do proxy:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nPrzekazanie Host lub User-Agent do portu 443 daje celowi nagłówki w postaci zwykłego tekstu tam, gdzie oczekuje TLS. Ten błąd może wystąpić, zanim wybór szyfru zacznie mieć znaczenie.
- Czytaj i analizuj aż do terminatora nagłówków z pustą linią, w ramach terminu konfiguracji i limitu rozmiaru nagłówków.
- Zastosuj uwierzytelnianie proxy i politykę celu.
- Nawiąż zatwierdzone połączenie z celem.
- Wyślij pomyślną odpowiedź CONNECT i przejdź w tryb tunelu.
Zachowaj zbuforowane bajty po granicy dla odpowiedniego następnego stanu. Nie odrzucaj ich i nie traktuj nagłówków żądania proxy jako późniejszego żądania witryny.
Klient ma odpowiedni obowiązek po stronie odpowiedzi: dokończ czytanie pomyślnej odpowiedzi CONNECT przed rozpoczęciem protokołu tunelowanego. Obie strony muszą uzgodnić granicę, na której strumień zmienia rolę.