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 சுரங்கம் பாதுகாக்காது. அங்கீகாரச் சேவையைப் பயன்படுத்தும் வழியைத் தேர்ந்தெடுக்கும்போது அந்தப் பரிமாற்றத்தை தனியாகச் சோதிக்கவும்.