#1 2008.02.28 11:28

Oberon
Участник
Зарегистрирован: 2008.02.28
Сообщений: 5
Карма: 0
Профиль

как подделать реферер

автор: Oberon   (20.02.2008 в 18:58)
А подделать реферер никак нельзя?.. Другого выхода думаю нет,..   

автор: Gemorroj   (20.02.2008 в 19:35)
Можно конечно, это обычный заголовок. Только вот как раз чтобы его отправить, нужно писать что-то более серьезное нежели header('Location: ...');, а именно, использовать что-то из этого набора: curl, fsockopen, ini_set + file_get_contents   

автор: Oberon   (20.02.2008 в 20:52)
Боюсь, я более серьезное не осилю.. Если можно, подробнее об этом всем.. Лишь бы мобильные телефоны на этом работали,

/// поможеш?

Неактивен

#2 2008.02.28 14:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: как подделать реферер

опишу на мой взгляд самый простой способ, с помощью ini_set + file_get_contents

Код:

1
span style="color: #0000BB"><?php// $url - адрес файла, который нужно скачать// к примеру $url = $_GET['file'];$url = 'http://xxx.kmx.ru/file.zip';// формируем Referer// В нашем случае просто укажем адрес файла$referer = $url;// Пишем заголовки, которые будут переданыini_set('user_agent',$_SERVER['HTTP_USER_AGENT']."\r\nAccept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\nAccept-Charset: $_SERVER[HTTP_ACCEPT_CHARSET]\r\nAccept-Language: $_SERVER[HTTP_ACCEPT_LANGUAGE]\r\nReferer: ".$referer);// Забираем файл$data = file_get_contents($url);// смотрим расширение$ext = strtolower(strrchr($url,'.'));//в соответствии с расширением ставим нужный MIME типif($ext == '.jad'){$mime = 'text/vnd.sun.j2me.app-descriptor';}elseif($ext == '.jar'){$mime = 'application/java-archive';}elseif($ext == '.txt'){$mime = 'text/plain';}elseif($ext == '.sis'){$mime = 'application/vnd.symbian.install';}elseif($ext == '.cab'){$mime = 'application/vnd.ms-cab-compressed';}elseif($ext == '.zip'){$mime = 'application/x-zip';}elseif($ext == '.gz'){$mime = 'application/x-gzip';}elseif($ext == '.tgz'){$mime = 'application/x-gzip';}elseif($ext == '.bz'){$mime = 'application/x-bzip';}elseif($ext == '.bz2'){$mime = 'application/x-bzip';}elseif($ext == '.7z'){$mime = 'application/x-7z-compressed';}elseif($ext == '.rar'){$mime = 'application/x-rar-compressed';}elseif($ext == '.doc'){$mime = 'application/msword';}elseif($ext == '.pdf'){$mime = 'application/pdf';}elseif($ext == '.mp3'){$mime = 'audio/mpeg';}elseif($ext == '.wav'){$mime = 'audio/x-wav';}elseif($ext == '.wma'){$mime = 'audio/x-ms-wma';}elseif($ext == '.avi'){$mime = 'video/x-msvideo';}elseif($ext == '.3gp'){$mime = 'video/3gpp';}elseif($ext == '.wmv'){$mime = 'video/x-ms-wmv';}elseif($ext == '.mpg'){$mime = 'video/mpeg';}elseif($ext == '.gif'){$mime = 'image/gif';}elseif($ext == '.jpg'){$mime = 'image/jpeg';}elseif($ext == '.jpe'){$mime = 'image/jpeg';}elseif($ext == '.jpeg'){$mime = 'image/jpeg';}else{$mime = 'application/octet-stream';}// Теперь данные нужно передать пользователюheader('Accept-Ranges: bytes');header('Content-Length: '.strlen($data));header('Last-Modified: '.gmdate('r',time()).' GMT');header('Connection: close');// Тип файлаheader('Content-Type: '.$mime);// Имя файлаheader('Content-Disposition: attachment; filename="'.basename($url).'"');print $data;?>

Должно работать, если не заблокирована функция ini_set

Неактивен

#3 2008.02.29 11:27

Helqg
Участник
Откуда: 52 регион
Зарегистрирован: 2008.01.23
Сообщений: 306
Карма: 2
Профиль

Re: как подделать реферер

Эт че ет вы такое делаете то?


Стране нужны автобусы!

Неактивен

#4 2008.02.29 13:48

Oberon
Участник
Зарегистрирован: 2008.02.28
Сообщений: 5
Карма: 0
Профиль

Re: как подделать реферер

Gemorroj спасибо, буду пробывать

Helqg, реферер подделываем smile

Неактивен

#5 2008.02.29 19:07

Helqg
Участник
Откуда: 52 регион
Зарегистрирован: 2008.01.23
Сообщений: 306
Карма: 2
Профиль

Re: как подделать реферер

Да я что то не пойму зачем? Может какие нибудь грабберы?


Стране нужны автобусы!

Неактивен

#6 2008.02.29 19:24

Admin
Administrator
Зарегистрирован: 2007.11.03
Сообщений: 95
Карма: -1
Профиль

Re: как подделать реферер

да, часто нужно для грабберов smile
в данном случае сервер не отдает файл если не передан соответствующий реферер.


сердце пронзенное ветром

Неактивен

#7 2008.05.14 10:22

Oberon
Участник
Зарегистрирован: 2008.02.28
Сообщений: 5
Карма: 0
Профиль

Re: как подделать реферер

Gemorroj написал:

опишу на мой взгляд самый простой способ, с помощью ini_set + file_get_contents
(...)
Должно работать, если не заблокирована функция ini_set

Вставил код, но выдает ошибку, в твоем примере в строке 69.. Вот что пишет:

Parse error: syntax error, unexpected T_ELSE in /home/darkto/public_html/wapquest/download.php on line 93

Даже не знаю почему,..

Неактивен

#8 2008.05.14 12:25

Helqg
Участник
Откуда: 52 регион
Зарегистрирован: 2008.01.23
Сообщений: 306
Карма: 2
Профиль

Re: как подделать реферер

а почему 69? 93?
Причем у него строк 83.


Стране нужны автобусы!

Неактивен

#9 2008.05.14 15:17

Oberon
Участник
Зарегистрирован: 2008.02.28
Сообщений: 5
Карма: 0
Профиль

Re: как подделать реферер

У него в примере это 69я строка... у меня - 93я,.. у меня скрипт побольше, в начале еще код есть,..

Неактивен

#10 2008.05.14 15:57

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: как подделать реферер

скопировал код, вставил в PHP Expert Editor, нажал F7. Синтаксических ошибок нет. Давай СВОЙ код wink

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.010 s