پراکسی تصدیق کی اپنی 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 ٹنل سے محفوظ نہیں ہوتیں۔ تصدیق والی سروس استعمال کرنے کا طریقہ چنتے وقت وہ منتقلی الگ دیکھیں۔

متعلقہ مضامین