ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣର ନିଜ 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 ଟନେଲ୍‌ରେ ସୁରକ୍ଷିତ ନୁହେଁ। ପ୍ରମାଣୀକରଣ ସେବା ବ୍ୟବହାର ବାଛିଲେ ସେହି ପରିବହନ ଅଲଗା ଯାଞ୍ଚ କରନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ