Proxy-autentikaasje hat eigen cURL-opsjes. CURLOPT_USERPWD foar in websideoanmelding konfigurearret net it proxyaccount, en CURLOPT_HTTPAUTH kiest de proxy-autentikaasjemetoade net.

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

Ferfang it dokumintaasje-IP en brûk de gegevens dy’t foar dy proxy jûn binne. Basic is hjir bewust keazen; brûk de stipe en goedkarde metoade fan dyn tsjinst ynstee fan oan te nimmen dat elk einpunt dy nedich hat.

It kombinearre fjild hat in kodearringsregel

Neffens libcurl URL-dekodearret CURLOPT_PROXYUSERPWD brûkersnamme en wachtwurd. It foarbyld kodearret elk diel foar it gearfoegjen mei it skiedingsteken. Dat telt as in letterlike persintsekwinsje of in oar spesjaal teken by de gegevens heart.

De aparte opsjes foar proxybrûkersnamme en wachtwurd nimme har wearden direkt oan:

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

Brûk dy as alternatyf formaat foar it útfieren fan de oanfraach. Pas de dekodearringsregel fan it kombinearre proxyfjild net automatysk ta op CURLOPT_USERPWD; libcurl beskriuwt in ferskil.

Hâld de autentikaasjetrajekten apart

CURLOPT_PROXYAUTH kiest proxy-autentikaasje, wylst CURLOPT_HTTPAUTH HTTP-autentikaasje mei de bestimming kiest. Freegje beide om oanmelding, stel dan foar elk de juste opsjes yn ynstee fan deselde gegevens nei beide plakken te kopiearjen.

CURLAUTH_ANY lit ûnderhanneling ta en kin foar de metoadekar in challenge-response-útwikseling tafoegje. It bewiist net dat de gegevens klopje. In ekstra mei de hân tafoege Proxy-Authorization-header kin de autentikaasjeôfhanneling fan de bibleteek fersteure.

Basic-gegevens op in ûnfersifere ferbining mei de proxy wurde net beskerme troch de lettere TLS-tunnel fan de webside. Kontrolearje dat transport apart by it kiezen fan in autentisearre tsjinst.

Relatearre artikelen