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 ટનલ સુરક્ષિત કરતી નથી. પ્રમાણીકરણવાળી સેવા વાપરવાની રીત પસંદ કરતાં એ પરિવહન અલગ તપાસો.