ຕົວເລືອກຢືນຢັນພຣັອກຊີໃນ 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 ຂອງເວັບໄຊທ໌ທີ່ເກີດພາຍຫຼັງ. ໃຫ້ກວດຊ່ວງການສົ່ງນັ້ນແຍກເມື່ອເລືອກວິທີໃຊ້ບໍລິການທີ່ຕ້ອງຢືນຢັນ.