PHP cURL ରେ ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ବିକଳ୍ପ
ସଠିକ୍ cURL ବିକଳ୍ପରେ ପ୍ରକ୍ସି ପ୍ରବେଶ ତଥ୍ୟ ଦିଅନ୍ତୁ ଓ ଗନ୍ତବ୍ୟ ପ୍ରମାଣୀକରଣ ନ ବଦଳାଇ ମିଶ୍ରିତ ଘରର URL ଡିକୋଡିଂ ସମ୍ଭାଳନ୍ତୁ।
ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣର ନିଜ 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 ଟନେଲ୍ରେ ସୁରକ୍ଷିତ ନୁହେଁ। ପ୍ରମାଣୀକରଣ ସେବା ବ୍ୟବହାର ବାଛିଲେ ସେହି ପରିବହନ ଅଲଗା ଯାଞ୍ଚ କରନ୍ତୁ।