Пасля радка запыту CONNECT гэтыя байты ўсё яшчэ належаць проксі:

CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\n

Перадача Host або User-Agent на порт 443 дае прызначэнню тэкставыя загалоўкі там, дзе яно чакае TLS. Гэтая памылка можа ўзнікнуць яшчэ да таго, як выбар шыфра будзе мець значэнне.

  1. Чытайце і разбірайце да пустога радка — канца загалоўкаў, у межах тэрміну наладкі і абмежавання памеру загалоўкаў.
  2. Ужыўляйце аўтэнтыфікацыю проксі і палітыку прызначэння.
  3. Усталюйце дазволенае злучэнне з мэтай.
  4. Адпраўце паспяховы адказ CONNECT і ўвайдзіце ў рэжым тунеля.

Захавайце буфераваныя байты пасля мяжы для адпаведнага наступнага стану. Не адкідвайце іх і не разглядайце загалоўкі запыту проксі як наступны запыт сайта.

Кліент мае адпаведны абавязак на баку адказу: скончыць чытанне паспяховага адказу CONNECT перад запускам тунельнага пратаколу. Абодва бакі павінны дамовіцца пра мяжу, дзе паток змяняе ролю.

Падобныя артыкулы