Uthibitishaji wa proksi una chaguo zake za cURL. Kuweka CURLOPT_USERPWD kwa kuingia tovutini hakusanidi akaunti ya proksi, na CURLOPT_HTTPAUTH haichagui mbinu ya uthibitishaji wa proksi.

<?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;

Badilisha IP ya nyaraka na utumie taarifa zilizotolewa kwa proksi hiyo. Basic imechaguliwa kimakusudi hapa; tumia mbinu inayotumika na iliyoidhinishwa na huduma badala ya kudhani kila kituo kinaihitaji.

Sehemu iliyounganishwa ina kanuni ya usimbaji

libcurl inaeleza kwamba CURLOPT_PROXYUSERPWD hufumbua usimbaji wa URL wa jina la mtumiaji na nenosiri. Mfano husimba kila sehemu kabla ya kuziunganisha kwa kitenganishi. Hilo ni muhimu ikiwa mfuatano wa asilimia halisi au herufi nyingine maalumu ni sehemu ya taarifa.

Chaguo tofauti za jina la mtumiaji na nenosiri la proksi hupokea thamani zake moja kwa moja:

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

Zitumie kama umbo mbadala la taarifa kabla ya kutekeleza ombi. Usitumie kiotomatiki kanuni ya kufumbua sehemu iliyounganishwa kwa CURLOPT_USERPWD; libcurl inaeleza tofauti.

Tenga hatua za uthibitishaji

CURLOPT_PROXYAUTH huchagua uthibitishaji wa proksi, huku CURLOPT_HTTPAUTH ikichagua uthibitishaji wa HTTP na lengwa. Pande zote zikihitaji kuingia, sanidi chaguo za kila upande badala ya kunakili taarifa zilezile sehemu zote mbili.

CURLAUTH_ANY huruhusu mazungumzo na inaweza kuongeza ubadilishanaji wa changamoto-jibu kabla ya kuchagua mbinu. Haithibitishi kwamba taarifa ni sahihi. Kuongeza pia kichwa cha Proxy-Authorization kwa mkono kunaweza kuvuruga ushughulikiaji wa uthibitishaji wa maktaba.

Taarifa za Basic kwenye muunganisho wa maandishi wazi kwa proksi hazilindwi na handaki la TLS la tovuti linalokuja baadaye. Kagua usafirishaji huo kando unapochagua jinsi ya kutumia huduma inayohitaji uthibitishaji.

Makala zinazohusiana