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 ಸುರಂಗ ರಕ್ಷಿಸುವುದಿಲ್ಲ. ದೃಢೀಕರಣ ಬೇಕಾದ ಸೇವೆ ಬಳಕೆ ಆರಿಸುವಾಗ ಆ ಸಾಗಣೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಪರಿಶೀಲಿಸಿ.