د Perl لخوا د SOCKS اړیکې له پرانیستلو وروسته TLS اضافه کړئ
IO::Socket::SSL په IO::Socket::Socks اړیکه کې کېږدئ او د منزل د کوربه نوم تایید کړئ.
د SOCKS اړیکه او د TLS اړیکه بېلې دندې لري. لومړی د SOCKS له لارې منزل ته د بایټ جریان ترلاسه کړئ. بیا پر همدې جریان TLS پیل کړئ او د پروکسي پر ځای د منزل وېبپاڼه وپېژنئ.
د HTTPS ډوله TLS د پای نقطې لپاره ترتیبات کېدای شي داسې وي:
use IO::Socket::Socks;
use IO::Socket::SSL;
my $target = 'example.com';
my $socket = IO::Socket::Socks->new(
SocksVersion => 5,
ProxyAddr => '127.0.0.1',
ProxyPort => 1080,
ConnectAddr => $target,
ConnectPort => 443,
) or die $!;
IO::Socket::SSL->start_SSL(
$socket,
SSL_hostname => $target,
SSL_verifycn_name => $target,
SSL_verifycn_scheme => 'http',
SSL_verify_mode => SSL_VERIFY_PEER,
) or die IO::Socket::SSL::errstr();
په اجازه ورکړل شوې عامه پروکسي لار کې د عامه HTTPS هدف لپاره د SOCKS5 پروکسي لیست د ProxyAddr او ProxyPort لپاره نوماندان وړاندې کوي. دا ټوټه د لېږد طبقې جوړوي؛ اپلیکیشن لا هم باید هغه پروتوکول ولېږي چې منزل یې تمه لري او پای ته رسېدو سره ساکټ وتړي.
د پام وړ همکار نوم وساتئ
د پروکسي پای نقطه لومړنۍ اړیکې پورې اړه لري. TLS SNI او د کوربه نوم تایید example.com پورې اړه لري. په دې پړاو کې د پروکسي کوربه نوم کارول کېدای شي غلطه هویتوب وغواړي یا یې تایید کړي.
د باور ذخیرې ترتیبات بله خپلواکه اړتیا ده. د تشخیصي بېلګې څخه کاپي شوي هر څه باور کوونکي callback پر ځای د اپلیکیشن پام وړ CA ترتیبات وکاروئ.
که د SOCKS ګام ناکام شي، د TLS پارامترونو بدلول به یې سم نه کړي. که SOCKS بریالی او TLS ناکام شي، د سند او کوربه نوم تېروتنه د شاهد په توګه وساتئ، نه دا چې د پروکسي عمومي خرابي وګڼئ.
د ماډولونو نومونه هم مهم دي: IO::Socket::Socks او IO::Socket::SSL بېلابېل جوړونکي او د لوړولو چلند لري. یو خام TCP ساکټ چې یوازې پروکسي ته رسېدلی، لا هم د SOCKS د منزل خبرې اترې نه دي بشپړې کړې.