პროქსის ავთენტიფიკაციას საკუთარი cURL პარამეტრები აქვს։ საიტის შესვლისთვის CURLOPT_USERPWD არ აყენებს პროქსის ანგარიშს, ხოლო CURLOPT_HTTPAUTH პროქსის ავთენტიფიკაციის მეთოდს არ ირჩევს.

<?php
$user = 'proxy-user';
$password = getenv('PROXY_PASSWORD');
if ($password === false) {
    throw new RuntimeException('Set PROXY_PASSWORD');
}

$ch = curl_init('https://example.com/');
curl_setopt_array($ch, [
    CURLOPT_PROXY => 'http://203.0.113.10:8080',
    CURLOPT_NOPROXY => '',
    CURLOPT_PROXYUSERPWD =>
        rawurlencode($user) . ':' . rawurlencode($password),
    CURLOPT_PROXYAUTH => CURLAUTH_BASIC,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 15,
]);

$body = curl_exec($ch);
if ($body === false) {
    throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), PHP_EOL;

შეცვალეთ დოკუმენტაციის IP და გამოიყენეთ ამ პროქსისთვის მოცემული მონაცემები. მაგალითში Basic განზრახაა არჩეული; გამოიყენეთ სერვისის მხარდაჭერილი და დამტკიცებული მეთოდი და ნუ ივარაუდებთ, რომ ყველა წერტილს ის სჭირდება.

გაერთიანებულ ველს კოდირების წესი აქვს

libcurl აღწერს, რომ CURLOPT_PROXYUSERPWD მომხმარებლის სახელსა და პაროლს URL-დეკოდირებას უკეთებს. მაგალითი თითოეულ ნაწილს გამყოფით შეერთებამდე კოდირებს. ეს მნიშვნელოვანია, თუ მონაცემში პირდაპირი პროცენტული მიმდევრობა ან სხვა სპეციალური სიმბოლოა.

პროქსის მომხმარებლის სახელისა და პაროლის ცალკე პარამეტრები თავიანთ მნიშვნელობებს პირდაპირ იღებს:

curl_setopt($ch, CURLOPT_PROXYUSERNAME, $user);
curl_setopt($ch, CURLOPT_PROXYPASSWORD, $password);

მოთხოვნის შესრულებამდე გამოიყენეთ ისინი მონაცემების ალტერნატიულ ფორმად. გაერთიანებული პროქსი ველის დეკოდირების წესი ავტომატურად ნუ გადაგაქვთ CURLOPT_USERPWD-ზე; libcurl განსხვავებას აღწერს.

ავთენტიფიკაციის მონაკვეთები გამოყავით

CURLOPT_PROXYAUTH პროქსის ავთენტიფიკაციას ირჩევს, CURLOPT_HTTPAUTH კი სამიზნესთან HTTP ავთენტიფიკაციას. თუ ორივე შესვლას მოითხოვს, თითოეულს სათანადო პარამეტრები დაუყენეთ და ერთ მონაცემს ორივე ადგილას ნუ აკოპირებთ.

CURLAUTH_ANY შეთანხმებას უშვებს და მეთოდის არჩევამდე გამოწვევა-პასუხის მიმოცვლა შეიძლება დაამატოს. ეს მონაცემების სისწორეს არ ამტკიცებს. დამატებით ხელით Proxy-Authorization სათაურის მიცემამ შეიძლება ბიბლიოთეკის ავთენტიფიკაციის დამუშავებას შეუშალოს ხელი.

პროქსისთან ღია ტექსტურ კავშირზე Basic მონაცემებს საიტის შემდგომი TLS გვირაბი არ იცავს. ავთენტიფიცირებული სერვისის გამოყენების არჩევისას ეს გადაცემა ცალკე შეამოწმეთ.

დაკავშირებული სტატიები