Dokončite analýzu hlavičiek CONNECT pred preposlaním klientského streamu
Proxy server, ktorý preposiela až po riadku požiadavky, môže odoslať svoju vlastnú hlavičku Host na TLS port cieľa.
Po riadku požiadavky CONNECT tieto bajty stále patria proxy:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nPreposlanie Host alebo User-Agent na port 443 poskytne cieľu hlavičky v čistom texte tam, kde očakáva TLS. Táto chyba môže nastať ešte predtým, než výber šifry vôbec začne hrať rolu.
- Čítajte a analyzujte až po ukončenie hlavičiek prázdnym riadkom, v rámci lehoty na nastavenie a limitu veľkosti hlavičiek.
- Aplikujte autentifikáciu proxy a politiku cieľa.
- Nadviažte schválené spojenie s cieľom.
- Odošlite úspešnú odpoveď CONNECT a prejdite do režimu tunela.
Uchovajte načítané bajty za hranicou pre príslušný ďalší stav. Nezahadzujte ich a nepovažujte hlavičky požiadavky proxy za neskoršiu požiadavku webu.
Klient má zodpovedajúcu povinnosť na strane odpovede: dokončite čítanie úspešnej odpovede CONNECT pred spustením tunelovaného protokolu. Obe strany sa musia zhodnúť na hranici, kde stream mení rolu.