Opsiynau dilysu dirprwy yn PHP cURL
Gosodwch fanylion dirprwy gyda’r opsiynau cURL cywir a thriniwch ddadgodio URL y maes cyfun heb newid dilysu’r gyrchfan.
Mae gan ddilysu dirprwy ei opsiynau cURL ei hun. Nid yw CURLOPT_USERPWD ar gyfer mewngofnodi gwefan yn gosod cyfrif y dirprwy, ac nid yw CURLOPT_HTTPAUTH yn dewis dull dilysu’r dirprwy.
<?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;
Disodlwch yr IP dogfennu a defnyddiwch y manylion a roddwyd ar gyfer y dirprwy hwnnw. Dewisir Basic yn fwriadol yn yr enghraifft; defnyddiwch y dull a gefnogir ac a gymeradwyir i’ch gwasanaeth yn lle tybio bod pob pwynt terfyn ei angen.
Mae gan y maes cyfun reol amgodio
Mae libcurl yn dogfennu bod CURLOPT_PROXYUSERPWD yn dadgodio URL yr enw defnyddiwr a’r cyfrinair. Mae’r enghraifft yn amgodio pob cydran cyn eu huno â’r gwahanydd. Mae hyn yn bwysig pan fo dilyniant canran llythrennol neu nod arbennig arall yn rhan o’r manylion.
Mae opsiynau enw defnyddiwr a chyfrinair dirprwy ar wahân yn derbyn eu gwerthoedd yn uniongyrchol:
curl_setopt($ch, CURLOPT_PROXYUSERNAME, $user);
curl_setopt($ch, CURLOPT_PROXYPASSWORD, $password);
Defnyddiwch nhw fel ffurf amgen cyn gweithredu’r cais. Peidiwch â chymhwyso rheol dadgodio’r maes dirprwy cyfun yn awtomatig i CURLOPT_USERPWD; mae libcurl yn dogfennu gwahaniaeth.
Cadwch gamau dilysu ar wahân
Mae CURLOPT_PROXYAUTH yn dewis dilysu dirprwy, tra bod CURLOPT_HTTPAUTH yn dewis dilysu HTTP gyda’r gyrchfan. Os oes angen mewngofnodi ar y ddau, gosodwch yr opsiynau priodol i bob un yn lle copïo’r un manylion i’r ddau le.
Mae CURLAUTH_ANY yn caniatáu negodi a gall ychwanegu cyfnewid her-ymateb cyn dewis dull. Nid yw’n profi bod y manylion yn gywir. Gall ychwanegu pennyn Proxy-Authorization â llaw hefyd ymyrryd â thriniaeth dilysu’r llyfrgell.
Nid yw manylion Basic ar gysylltiad testun clir â’r dirprwy wedi’u diogelu gan dwnnel TLS diweddarach y wefan. Gwiriwch y cludiant hwnnw ar wahân wrth ddewis sut i ddefnyddio gwasanaeth wedi’i ddilysu.