Seseorang mahu memeriksa apa yang klien hantar melalui terowong, menjumpai hook sambungan dalam dokumentasi dan mula menulis skrip yang tidak akan menerima satu paket pun. Hook itu nyata dan berguna, tetapi unit kerjanya ialah sesi, bukan bait. Memilih komponen yang betul ialah perbandingan antara tiga tempat kerja boleh berlaku, dan soalan penentunya ialah unit mana yang benar-benar dapat dilihat oleh setiap satu.

Apa yang diterima hook, dan apa yang tidak pernah diterimanya

Hook sambungan klien berjalan sekali apabila klien yang disahkan menubuhkan sesi, dalam konteks proses pelayan, dengan argumen terdokumentasi dan nilai persekitaran seperti nama biasa dan alamat yang diberikan. Ia boleh menulis konfigurasi setiap klien, membuat keputusan kemasukan, memperuntukkan sumber luar atau merekod bahawa sambungan telah berlaku. Apa yang tidak boleh dilakukannya ialah memerhati trafik, kerana apabila paket pertama melintasi terowong hook sudah pun kembali.

Ini bukan kekangan yang perlu dielakkan. Panggilan balik sesi yang cuba memproses aliran perlu berjalan sepanjang hayat sambungan, dan kontrak skrip daemon tidak dibina untuk bentuk itu. Tanyakan untuk apa hook itu sebelum memutuskan ia menghalang.

Sambungan semula juga penting. Klien yang terputus dan menyambung semula ialah sesi baharu, jadi apa sahaja yang diperuntukkan hook mesti idempoten atau dipasangkan dengan peristiwa pemutusan yang membersihkan. Keadaan yang bocor pada setiap sambungan semula ialah pepijat pertama yang biasa dalam reka bentuk berasaskan hook.

Dasar sesi terletak dalam hook

Kemasukan ialah kerja semula jadi hook. Anda tahu siapa yang bersambung, dari mana dan dengan sijil apa, dan anda boleh memutuskan sama ada sesi ini harus diteruskan atau ditolak. Keputusan itu murah, berlaku sekali, dan tidak memerlukan melihat satu bait muatan pun.

Peruntukan konfigurasi sesuai dengan bentuk yang sama. Hook boleh memilih alamat klien, menghantar pilihan yang sesuai dengan identiti itu, atau menulis serpihan yang dibaca pelayan untuk klien ini. Kerana keputusannya adalah setiap sesi, ia kekal boleh difahami apabila sesuatu berlaku salah dan seseorang perlu menjelaskan mengapa klien tertentu mendapat alamat tertentu.

Perekodan ialah padanan ketiga. Entri audit yang menyatakan bahawa sesi telah diterima, dengan identiti dan masanya, terletak tepat di sini. Ia bukan log trafik dan tidak sepatutnya berpura-pura menjadi log trafik. Jika kemudian seseorang bertanya apa yang klien lakukan di dalam terowong, jawapannya mesti datang dari tempat lain.

Kerja paket terletak pada laluan paket

Jika keperluannya ialah melihat atau mengubah bait semasa bergerak, komponen mesti berada pada laluan penghantaran: peraturan tembok api dengan baris gilir, hook kawalan trafik, atau penghantar dalam ruang pengguna. Mekanisme itu melihat paket, dan ia mempunyai keadaan, mod kegagalan dan profil prestasinya sendiri.

Menyunting muatan pada lapisan itu lebih sukar daripada membacanya. Menukar satu bait boleh membatalkan medan panjang, checksum atau mesin keadaan protokol, dan terowong lapisan tiga tidak melindungi anda daripada mana-mana itu. Ia hanya bermakna pengepala luar bukan yang anda sunting. Anggarkan kerja pembaikan itu sebelum menjanjikan penulisan semula kandungan kepada sesiapa.

Tangkapan antara muka ialah alat termurah dalam kategori ini, dan ia pemerhatian, bukan penyunting. Orang mengelirukan keduanya kerana keduanya digambarkan sebagai melihat trafik, tetapi tangkapan menghasilkan fail dan laluan paket menghasilkan keputusan.

Perubahan aplikasi terletak dalam aplikasi

Apabila tujuannya ialah mengubah apa yang terkandung dalam permintaan atau bagaimana respons dibentuk, tempat yang betul ialah perkhidmatan itu sendiri atau proksi yang menamatkan protokol dengan sengaja. Komponen itu sudah memahami permintaan, respons dan pengesahan yang dijangka oleh aplikasi, dan itulah konteks yang tidak ada pada penapis paket.

Terjemahan alamat berada di dasar senarai ini atas sebab tertentu. Ia menulis semula alamat dan port dan membiarkan muatan, jadi ia bukan alat kandungan seberapa kerap pun ia muncul dalam resipi yang turut menyebut kandungan.

Mengasingkan sempadan ini ialah apa yang menjadikan reka bentuk boleh dijelaskan. Dasar sesi dalam hook, pengendalian paket pada laluan paket, dan perubahan aplikasi di tempat protokol ditamatkan dengan sengaja: tiga ayat yang turut berfungsi sebagai senarai semak untuk semakan.

Di mana TLS masih menamatkan perbualan

Satu perkara bertahan daripada semua di atas: trafik di dalam terowong yang membawa HTTPS mengekalkan penyulitan pengangkutannya sendiri. Memegang kunci VPN memberi anda paket IP dalaman dan tidak memberi anda kunci sesi laman web di hujung yang lain.

Sebab itulah hook tidak boleh memeriksa kandungan walaupun pada dasarnya, dan sebab itulah laluan paket melihat teks bersulit melainkan penggunaan menamatkan TLS dalaman dengan sengaja. kontrak skrip menerangkan apa yang diberikan kepada hook; ia tidak menyebut apa-apa tentang muatan kerana tiada muatan untuk diberi.

Artikel berkaitan