2015-01-28 3 views
1

나는 내가 방문하는 포럼과 상호 작용하는 안드로이드 응용 프로그램을 만들고 있습니다. 이 스태프는이 앱을 허용하지만 API를 제공하지는 않습니다.PHP 컬을 사용하여 핫 링크 보호하기

정보를 얻으려면 CURL을 사용하여 포럼을 긁는 중급 PHP 스크립트를 사용해야합니다. 모든 것이 훌륭하게 작동하며 작은 세부 사항은 제외됩니다.

주제를 보려면 필자 이름, 날짜 및 게시물 내용과 같이 필요한 모든 데이터를 고칩니다. 그러나 서버에 저장된 이미지는 핫 링크로 보호되므로 볼 수 없습니다. 재미있는 점은 개별 이미지를 보는 것이 문제가되지 않지만 문맥에 배치 될 때마다 사이트 저작권 이미지로 대체된다는 것입니다.

나는 웹 사이트가 내가 보낸 (비어있는) HTTP referer를 변경하고 따라서 저작권 이미지 (hotlink protection)로 응답한다는 느낌이 들었다.

누군가이 문제를 해결하는 방법을 알려 줄 수 있습니까?

코드는 내가 사용 : 내가 거기에 이미지의 URL을 넣을 때마다

$url = 'someurliwanttoscrape'; 
$cookie_string = 'somecookies'; 
$useragent = 'someuseragent'; 
$timeout = 60; 

$rawhtml = curl_init(); 
curl_setopt ($rawhtml, CURLOPT_URL,$url); 
curl_setopt ($rawhtml, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt ($rawhtml, CURLOPT_REFERER, '');    
curl_setopt ($rawhtml, CURLOPT_COOKIE, $cookie_string);  
curl_setopt ($rawhtml, CURLOPT_CONNECTTIMEOUT, $timeout); 
curl_setopt ($rawhtml, CURLOPT_USERAGENT, $userAgent); 
$output = curl_exec($rawhtml); 
curl_close($rawhtml); 

이 작동합니다. 문제 없습니다. 이미지를 볼 수 있습니다. 핫 링크 보호 기능이 없습니다. .하지만 최대한 빨리 이미지가 텍스트에 포함 된 URL에있는 핫 링크 보호 차기

+0

핫 링크 보호가 어떻게 작용하는지 알아 내주세요. 그것이 리퍼러라면 스푸핑. 충분히 간단합니다. – Halcyon

+0

은 실제 샘플 (포럼과 같은) – dmayo

+0

을 볼 수 있다면 도움이 될 것입니다. 포럼 개발자가 확인한 리퍼러와 함께 작동하며 결과도 마찬가지입니다. 개별 이미지를 볼 수 있습니다. 프라이버시를 위해서 나는 포럼을 공유하지 않을 것입니다. 또한 w.r.t. 직원들의 소원. – Eztys

답변

0

당신은 컬을 알려 curl_setopt을 사용할 수를 넣어 어떤 리퍼러 보낼 :

curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com'); 

documentation에 대한 참조 더 자세한 것은 알지만, 그게 전부예요.

+0

나는 이처럼 여러 번 코드를 시도했다. 하지만 작동하지 않습니다. 나는 이미지를 다운로드하기 위해 리퍼러가 항상 변경된다고 생각합니다. 이미지에 대한 간접 요청이기 때문에. – Eztys