Куката за поврзување е сесиска политика, а не филтер за пакети
Куката за поврзување на клиентот се извршува еднаш по сесија и никогаш не го гледа полезниот товар. Ставете го прифаќањето таму каде што има сесии, а промената на содржината таму каде што има барања.
Некој сака да види што испраќаат клиентите низ тунелот, ја наоѓа куката за поврзување во документацијата и почнува да пишува скрипта што никогаш нема да прими ниту еден пакет. Куката е вистинска и корисна, но нејзината работна единица е сесија, а не бајт. Изборот на вистинската компонента е споредба меѓу три места каде што може да се случи работа, а одлучувачкото прашање е која единица секое од нив навистина може да ја види.
Што прима куката и што никогаш не прима
Куката за поврзување на клиентот се извршува еднаш кога автентифициран клиент воспоставува сесија, во контекст на процесот на серверот, со документирани аргументи и вредности од околината како заедничкото име и доделената адреса. Може да пишува конфигурација по клиент, да донесе одлука за прифаќање, да додели надворешен ресурс или да забележи дека врската се случила. Она што не може е да го набљудува сообраќајот, бидејќи кога првиот пакет ќе го премине тунелот, куката веќе се вратила.
Ова не е ограничување што треба да се заобиколи. Повратен повик на сесија што би се обидел да обработува тек би морал да работи целиот животен век на врската, а скриптниот договор на демонот не е изграден за таков облик. Прашајте за што служи куката пред да одлучите дека ви пречи.
Повторните поврзувања исто така се важни. Клиентот што ќе падне и повторно ќе се поврзе е нова сесија, па сè што доделува куката мора да биде идемпотентно или спарено со настан за исклучување што чисти. Состојбата што истекува при секое повторно поврзување е вообичаената прва грешка во дизајн заснован на кука.
Сесиската политика припаѓа на куката
Прифаќањето е природната работа на куката. Знаете кој се поврзал, од каде и со кој сертификат, и можете да одлучите дали оваа сесија ќе продолжи или ќе биде одбиена. Таа одлука е евтина, се случува еднаш и не бара гледање во ниту еден бајт товар.
Доделувањето конфигурација се вклопува во истиот облик. Куката може да ја избере адресата на клиентот, да испрати опции соодветни на тој идентитет или да напише фрагмент што серверот го чита за овој клиент. Бидејќи одлуката е по сесија, таа останува разбирлива кога нешто тргнува наопаку и некој треба да објасни зошто одреден клиент добил одредена адреса.
Запишувањето е третото совпаѓање. Ревзиски запис што вели дека сесијата е прифатена, со нејзиниот идентитет и време, припаѓа токму тука. Тоа не е дневник на сообраќај и не треба да се претставува како таков. Ако подоцна некој праша што правел клиентот внатре во тунелот, одговорот мора да дојде од друго место.
Работата со пакети припаѓа на патеката на пакети
Ако барањето е да се гледаат или менуваат бајти во лет, компонентата мора да биде на патеката на препраќање: правило на огнен ѕид со ред, кука за контрола на сообраќај или препраќач во просторот на корисникот. Тие механизми гледаат пакети и имаат сопствена состојба, сопствени режими на откажување и сопствен профил на изведба.
Уредувањето на товарот на тој слој е потешко од неговото читање. Менувањето на еден бајт може да го поништи полето за должина, контролната сума или машината за состојби на протоколот, а тунелот од трет слој не ве штити од ниту едно од тоа. Тоа само значи дека надворешните заглавија не се тие што ги уредувате. Предвидете ја таа поправка пред некому да ветите препишување на содржината.
Фаќањето на интерфејсот е најевтиниот алат во оваа категорија и тоа е набљудување, а не уредник. Луѓето ги мешаат двете зашто и двете се опишуваат како гледање сообраќај, но фаќањето создава датотека, а патеката на пакети создава одлука.
Промените во апликацијата припаѓаат на апликацијата
Кога целта е да се смени што содржи барањето или како се обликува одговорот, вистинското место е самата услуга или прокси што намерно го завршува протоколот. Тие компоненти веќе разбираат барања, одговори и автентикацијата што апликацијата ја очекува, и тоа е токму контекстот што му недостига на филтерот за пакети.
Преведувањето адреси е на дното од овој список со причина. Препишува адреси и порти и го остава товарот на мир, па затоа не е алат за содржина, колку и често да се појавува во рецепт што споменува и содржина.
Одвојувањето на овие граници е она што го прави дизајнот објаснив. Сесиска политика во куката, работа со пакети на патека на пакети и промена во апликацијата таму каде што протоколот намерно се завршува: три реченици што служат и како контролен список за преглед.
Каде TLS сè уште го завршува разговорот
Едно нешто го надживува сето наведено: сообраќајот внатре во тунелот што носи HTTPS ја задржува сопствената транспортна шифра. Држењето на клучевите на VPN ви го дава внатрешниот IP пакет и не ви ги дава сесиските клучеви за веб-страницата на другиот крај.
Затоа куката не може да ја проверува содржината дури и во принцип, и затоа патеката на пакети гледа шифриран текст, освен ако распоредувањето намерно не го заврши внатрешниот TLS. скриптен договор опишува што и се дава на куката; не кажува ништо за товарот зашто нема товар што би се дал.