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 ගමනාන්ත සාකච්ඡාව සම්පූර්ණ කර නැත.