2015-01-28 3 views
1

Я работаю над приложением Android, которое взаимодействует с форумом, который я посещаю. Персонал форума позволяет это приложение, но не будет работать с API.Использование PHP Curl для защиты от hotlink

Чтобы получить необходимую информацию, я использую промежуточный PHP-скрипт, который скрещивает форум с CURL. Все работает просто отлично, за исключением одной маленькой детали.

Для просмотра тем я очищаю все данные, которые мне нужны, такие как имя плаката, дата и содержание сообщения. Но поскольку изображения, хранящиеся на их сервере, защищены от hotlink, я не могу их увидеть. Самое забавное, что просмотр отдельных изображений не проблема, но всякий раз, когда они помещаются в контекст, они заменяются изображением авторских прав сайтов.

У меня такое ощущение, что веб-сайт меняет HTTP-референт, который я отправляю (который пуст), и, следовательно, отвечал на изображение с авторским правом (защита от ссылок).

Может кто-нибудь дать мне несколько советов, как решить эту проблему?

код я использую:

$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 изображения там. Нет проблем, я вижу изображение, без защиты от ссылок. . Но как только я поставил URL, где изображение встраивается в тексте, пинки защиты хотлинка в

+0

Посмотрите, как работает защита hotlink и разрушает ее. Если это реферер, обманите его. Достаточно просто. – Halcyon

+0

поможет, если мы сможем увидеть образец реального мира (например, форум) – dmayo

+0

Он работает с рефери, что подтверждается разработчиком форума, а также моими результатами. Как я вижу отдельные изображения. Ради личной жизни я бы предпочел не делиться форумом. Также w.r.t. пожелания персонала. – Eztys

ответ

0

Вы можете использовать curl_setopt сказать Curl, что ссылающиеся отправить:

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

Смотрите documentation для более подробную информацию, но это почти все, что нужно для этого

+0

Я пробовал код, как это много раз. Но это не сработает. Я думаю, что референт всегда меняется, чтобы загружать изображения. Поскольку это более косвенный запрос к изображениям. – Eztys