TL;PHP - 리디렉션을 수행 할 때 cURL을 'AUTOREFERER'로 설정해야합니까?
DR해야 또는 는 내 컬 함수 CURLOPT_AUTOREFERER => true
설정하지한다 (즉 리디렉션 제한된 수 이하) 왜?
긴 다음 (어) 버전 나는 주어진 URL의 헤더를 반환 꽤 표준 컬 기능이
, 최대 10 리디렉션 ...
const SINGLETIMEOUT = 8; // Seconds (is this too long?)
public static function getHeaders($url, $userAgent) {
// Initialize cURL object
$curl = curl_init($url);
// Set options
curl_setopt_array($curl, array(
CURLOPT_USERAGENT => $userAgent,
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_MAXREDIRS => 10,
CURLOPT_AUTOREFERER => true,
CURLOPT_TIMEOUT => SINGLETIMEOUT, // 5 seconds (safety!)
CURLOPT_CONNECTTIMEOUT => SINGLETIMEOUT
));
// Run it
curl_exec($curl);
// Get headers
$headers = curl_getinfo($curl);
// Close it
curl_close($curl);
return $headers;
}
기능 getHeaders
은 예상대로 정확하게 작동합니다. 그러나 지금까지 테스트 한 결과 CURLOPT_AUTOREFERER => true
을 포함하든 아니든간에 성능이나 결과에는 차이가 없습니다. CURLOPT_AUTOREFERER
은입니다.하지만 그 이상의 특정 옵션에 대해서는 자세히 알 수 없습니다.
좋아, 그래서 설정``
리디렉션 : 그것은 위치를 다음과 HTTP 요청의 헤더 필드를? 왜이 문제가 중요합니까? 내가 그걸 보관하거나 토스해야합니까? 일부 URL에서 결과가 달라질 수 있습니까? 일부 도메인은 빈 사용자 에이전트를 보낼 때와 마찬가지로 잘못된 헤더를 반환합니까?뜻이 ... 자동으로 리퍼러 설정 : 그래서
그리고에, 그리고에 ... 예제
대부분의 나는이 기능을 포함하지 않았다 만들 발견 -하지만 그들은 또한 내가 포함하고있어 다른 대부분의 옵션을 포함하지 않았다 .
모든 개발자는 쉽게 스푸핑 되었기 때문에 리퍼러를 무시하도록 훈련했기 때문에 일반적으로 의미가 없습니다. 비록 무시되지 않더라도 일반적으로 분석에 사용되므로 원격 사이트에서 사용자가 어디서 왔는지 알 수 있도록할지 여부는 사용자의 몫입니다. – apokryfos
@apokryfos는 자세한 답변을 주셔서 감사합니다. 매우 감사! 제발 대답 해주세요. 전리품은 당신 것입니다! – Birrel