|
|
|
| Здравствуйте. Проблема следующая:
Написал граббер, но на сайте, который граблю стоит защита от скачивания файлов по рефереру. Проверяется либо его правильность, либо отсутсвие. Так вот вопрос, можно ли как то через .htaccess отключить передачу скриптом заголовка referer?
Заранее спасибо ответившим. | |
|
|
|
|
|
|
|
для: demon666
(02.07.2007 в 11:44)
| | Хм... вообще реферер и не должен передаваться - вы каким способом извлекаете HTML-страницу с удалённого хоста? | |
|
|
|
|
|
|
|
для: cheops
(02.07.2007 в 21:27)
| | вот мой граббер:
<?php
Error_Reporting(0);
$text=@file_get_contents("http://antiwap.ru/load/?$QUERY_STRING");
header("Cache-Control: no-cache");
header("Content-Type:text/html;charset=UTF-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Загрузки</title>
<link rel="stylesheet" href="default.css" type="text/css">
</head>
<body><div class="main">';
$text=@preg_replace('|<!D(.*)<body>|U','',$text);
$text=@preg_replace('|<br>Добавил:(.*)user.php(.*)>(.*)</a>|U','',$text);
$text=@preg_replace('|<tr><td class="iteml"><small>(.*)<(.*)stat(.*)>Статистика</a></small></td></tr>|U','',$text);
$text=@preg_replace('|<tr><td class="item" style="border-bottom: solid 1px #000080"><small>(.*)<(.*)rating(.*)>Рейтинг</a></small></td></tr>|U','',$text);
$text=@str_replace('<tr><td class="item" style="border-bottom: solid 1px #000080"><small> <a href="http://offsex.org/old">New Sex Archive</a></small></td></tr>','',$text);
$text=@str_replace('style/folder.gif','folder.gif',$text);
$text=@preg_replace('|<img src="style/ar(.*)<(.*)index(.*)>Главная</a><br>|U','',$text);
$text=@str_replace('style/up.gif','up.gif',$text);
$text=@str_replace('<div class="bottom">','',$text);
#$text=@str_replace("dl.php","http://antiwap.ru/load/dl.php",$text);
$text=@str_replace('img.php','http://antiwap.ru/load/img.php',$text);
$text=@explode('<img src="style/ar.gif" alt=">"> <a href="search.php',$text);
print"$text[0]";
print '<small><a href="./"><span>-</span> Загрузки</a><br/><a href="../"><span>-</span> На главную</a></small></div></body></html>';
?>
|
dl.php
<script type="text/javascript">
window.location.href = "http://antiwap.ru/load/dl.php?<?php echo $_SERVER['QUERY_STRING'] ?>";
</script>
|
Но это работает только в IE. А мне нужно чтобы он работал и на мобильных телефонах, которые естественно не поддерживают JS. На сайте который граблю стоит проверка реферера либо на правильность, либо на его отсутвие... но он всё же передается.... и подделать тоже не получается. | |
|
|
|
|
|
|
|
для: demon666
(02.07.2007 в 22:39)
| | Функция file_get_contents() вообще не передаёт HTTP-заголовка referer, поэтому он не передаётся на сайт antiwap.ru. Или вам как раз нужно передать его? | |
|
|
|
|
|
|
|
для: cheops
(03.07.2007 в 09:28)
| | >Функция file_get_contents() вообще не передаёт HTTP-заголовка referer, поэтому он не передаётся на сайт antiwap.ru. Или вам как раз нужно передать его?
да, по идее должен не передаваться, но как то же их скрипт вычисляет, что это граббер. Скопируйте и вставьте вот эту ссылку в адресную строку http://antiwap.ru/load/dl.php?id=15110&s=1, перейдите, и загрузится картинка. А потом перейдите по этой ссылке прямо с форума, то выкинет на главную страницу антивапа. Когда реферера не было, то картинка загрузилась, когда появился, то нет. Точно такая же проблема и в граббере, file_get_contents() реферер не передает, даже когда в граббере расскоментировать вот эту строчку $text=@str_replace("dl.php","http://antiwap.ru/load/dl.php",$text); то есть выставить прямые ссылки на файлы, то при переходе по ним выкидывает на главную страницу. Значит здесь реферер как то передается... Вот только сам не пойму как.... | |
|
|
|