ئايرىم ئىشلەتكۈچى سېسىيەلىرى ئۈچۈن PHP cURL cookie قاچىلىرى
PHP cURL cookie ساقلىشىنى يىراق سېسىيە ئەتراپىدا لايىھەلەش: ئىشەنچلىك ھۆججەت ئىسىملىرى، ئېنىق ساقلاش ۋە قاتارلىق تەلەپلەر.
بىر PHP پروگراممىسى Alice بىلەن Bob غا مۇلازىمەت قىلىدۇ، ئىككىلىسى ئۇنىڭ سېرۋېر تەرەپ cURL خېرىدارىنى ئىشلىتىپ، proxy ئارقىلىق ئوخشاش يىراق تور بېكەتكە يېتىدۇ. ئەگەر ھەر بىر تەلەپ cookies.txt نى يۈكلىسە، ئىككى ئىشلەتكۈچى ئوخشاش يىراق كىرىشنى مىراس ئېلىشى مۇمكىن. ئۇلارنىڭ proxy ئادرېسىنى ئۆزگەرتىش بۇ ھۆججەتنى ئايرىمايدۇ.
ھۆججەت ئىسمىنى تاللاشتىن بۇرۇن cookie نىڭ ئىگىسىنى تاللاڭ. ئادەتتە بۇ پروگراممىنىڭ لوگىكىلىق يىراق سېسىيەسى: يەرلىك ئىشلەتكۈچى، مەلۇم بىر يىراق ھېسابات ۋە زۆرۈر بولغاندا ئايرىم خىزمەت بوشلۇقى. proxy ئاخىرلاشقۇچى نۇقتىسى يول تاللاش، ئىشەنچلىك سېسىيە بەلگىسى ئەمەس. بىر قانچە ئىشلەتكۈچى بىر ئاخىرلاشقۇچى نۇقتىنى ئورتاقلىشالايدۇ، ئاخىرلاشقۇچى نۇقتا چىقىش يوللىرىنى ئالماشتۇرالايدۇ.
ئوخشاش سېسىيەنىڭ قاچىسىنى يۈكلەڭ ۋە ساقلاڭ
پروگرامما ئۆزىنىڭ دەلىللەنگەن سېسىيەسىنى سېرۋېر ياسىغان ھۆججەت ئاچقۇچىغا باغلىسۇن. شەخسىي cookie مۇندەرىجىسى ۋە ئىشەنچلىك $sessionKey بىلەن، cURL سەپلىمىسى بۇ شەكىلدە بولىدۇ:
$jar = $cookieDirectory . '/' . $sessionKey . '.cookies';
$ch = curl_init('https://service.example.net/account');
curl_setopt_array($ch, [
CURLOPT_PROXY => 'http://proxy.example.net:8080',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_COOKIEFILE => $jar,
CURLOPT_COOKIEJAR => $jar,
]);
ئاممىۋى ۋاسىتىچىگە يول قويىدىغان توردا رۇخسەت قىلىنغان ئاممىۋى بېكەت سېسىيە سىنىقى ئۈچۈن، HTTP proxy تىزىملىكى نامزات ئاخىرلاشقۇچى نۇقتىلارنى تەمىنلەيدۇ. سەپلەنگەن proxy دەلىللەش ياكى ساقلانغان proxy ھۆججىتى يوق تۇتقۇچنى ئىشلىتىڭ، cookie ھالىتىنى مەقسەت قىلىنغان سېسىيەگە تەيىنلەنگەن ھالدا ساقلاڭ. بۇ پارچە بىر تۇتقۇچنى سەپلەيدۇ؛ پروگرامما يۆتكەشنى ئېلىپ بارىدۇ ۋە نەتىجىنى ئادەتتىكى تەلەپ ئېقىمى ئارقىلىق تەكشۈرىدۇ. COOKIEFILE سېسىيەنىڭ ئىلگىرىكى cookie لىرىنى يۈكلەيدۇ. COOKIEJAR تۇتقۇچنىڭ ساقلانغان cookie لىرىنى قەيەرگە يېزىشىنى تاللايدۇ. پەقەت چىقىش ھۆججىتىنى تەڭشەش ئىلگىرىكى كىرىشنى يۈكلىمەيدۇ.
يېڭى سېسىيە ھۆججەتسىز باشلىنالايدۇ. ئۇنىڭ بىرىنچى يۆتكىشىگە مەقسەت قىلىنغان قاچا يولىنى بېرىڭ، تور بېكەت cookie لارنى قۇرسۇن، ھاسىل بولغان ھالەتنى كېيىنكى تەلەپ ئۈچۈن ساقلاڭ. cookie مۇندەرىجىسى پروگراممىنىڭ خىزمەتچىسى يازالايدىغان بولۇشى ۋە ئاممىۋى مۇلازىمەت قىلىنىدىغان ھۆججەت دەرىخىنىڭ سىرتىدا ساقلىنىشى كېرەك. زىيارەتچى بەرگەن ئىشلەتكۈچى ئىسمى ياكى يولنى ھۆججەت ئىسمىغا ئايلاندۇرماڭ؛ ئىشەنچلىك ئاچقۇچنى سېرۋېردىن ئىزدەڭ.
ساقلاش تەلەپنىڭ ھاياتلىق دەۋرىدە ئورۇن تەلەپ قىلىدۇ
libcurl ئادەتتە تۇتقۇچنى تازىلاش جەريانىدا قاچىنى يازىدۇ. ئەگەر پروگرامما يىراق ئالماشتۇرۇشتىن كېيىن ئېنىق ساقلاش نۇقتىسىغا ئېھتىياجلىق بولسا، تۆۋەندىكىنى تەلەپ قىلالايدۇ:
curl_setopt($ch, CURLOPT_COOKIELIST, 'FLUSH');
بۇ تۇتقۇچ ھازىر بىلىدىغان cookie لارنى ئۇنىڭ سەپلەنگەن قاچىسىغا يازىدۇ. تۇتقۇچنى ئۇ سېسىيە ئۈچۈن ئىشلىتىشنى تۈگەتكەندىن كېيىن، ئۇنى مۇناسىۋەتسىز خىزمەتكە تەيىنلەڭ. ئاللىبۇرۇن Alice نىڭ cookie لىرىنى ساقلاۋاتقان تۇتقۇچتا پەقەت قاچا يولىنى ئۆزگەرتىش Bob نىڭ پاكىز سېسىيەسىنى ياساشقا باراۋەر ئەمەس.
شۇنداقلا مۇۋەپپەقىيەتلىك چۈشۈرۈشنى مۇۋەپپەقىيەتلىك ساقلاشتىن ئايرىڭ. cookie قاچىسى ھۆججىتىدە تازىلاش جەريانىدىكى يېزىش مەغلۇبىيىتىنىڭ ئادەتتىكى يۆتكەش خاتالىقى سۈپىتىدە قايتۇرۇلمايدىغانلىقى يېزىلغان. كىرىش بىر تەلەپ ئۈچۈن ئىشلەپ، كېيىنكىسىدە يوقالسا، مۇندەرىجە ئىگىلىكى، ئىجازەت ۋە پروگراممىنىڭ دىئاگنوز چىقىشىنى تەكشۈرۈڭ.
قاتارلىق تەلەپلەر يەنە بىر چېگرا ئېلىپ كېلىدۇ. ئىككى خىزمەتچى ئوخشاش كونا قاچىنى يۈكلەپ، ئۆز ئەسلىمىسىدىكى ھالەتنى مۇستەقىل ئۆزگەرتىپ، ئاندىن ئوخشىمىغان نەتىجىلەرنى ساقلىيالايدۇ. ئەگەر ئىككى تەلەپ بىر يىراق كىرىشنى ئورتاقلىسا، سېسىيە بويىچە قۇلۇپ ياكى باراۋەر تەرتىپلەش پۈتۈن يۈكلەش، ئالماشتۇرۇش ۋە ساقلاش تەرتىپىنى قاپلىشى كېرەك؛ پەقەت ئاخىرقى يېزىشنى قۇلۇپلاش ئۇلارنىڭ ئىلگىرىكى كۆرۈنۈشلىرىنى ماسلاشتۇرمايدۇ. ئوخشىمىغان سېسىيىلەرنىڭ ئوخشىمىغان ھۆججەتلىرى ۋە مۇستەقىل قۇلۇپلىرى بولۇشى كېرەك.
چىقىشتا، مەقسەت قىلىنغان يىراق سېسىيەنى ئاخىرلاشتۇرۇڭ ۋە ئۇنىڭ يەرلىك cookie ھالىتىنى پروگرامما سىياسىتى بويىچە ئايرىڭ. يېڭى تاللانغان proxy ئاندىن ئىشلەتكۈچى باشلىغان ھەر قانداق يېڭى سېسىيەگە ئۇلىنىشى مۇمكىن، proxy ئادرېسى ئەسلىمىدە كىمنىڭ كىرىشى بارلىقىنى ھۆكۈم قىلىشقا مەجبۇر بولمايدۇ.