подмена REFERER

Тема в разделе "PHP", создана пользователем ivashka, 3 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Как подменить РЕФЕР при ПОСТ запросе, я передаю пост на другой сайт, но как мне сделать так, что бы он не понял что запрос с другого сайта, а принял как свой родной.
    Пост отправляю посредством формы, т.к. пользователь вводит данные.
    Заранее благодарен.
     
  2. Nike59

    Nike59

    Регистр.:
    13 ноя 2006
    Сообщения:
    459
    Симпатии:
    100
    Примерно вот так:
    Код:
    [COLOR=#000000][COLOR=#000000][COLOR=#0000bb]<?php  [/COLOR]
    [COLOR=#000000] $host [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"www.site.com"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$path [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"/somepage.php"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$fp [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fsockopen[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$host[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]80[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$errno[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$errstr[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]30[/COLOR][COLOR=#007700]);  [/COLOR]
    [COLOR=#007700] if(![/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]) echo[/COLOR][COLOR=#dd0000]"$errstr ($errno)<br />\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#007700] else{  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"GET $path HTTP/1.0\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Host: $host\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Accept: *\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Accept-Charset: *\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Accept-Encoding: deflate\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Accept-Language: ru\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"Referer: [URL]http://poddleka.com/index.php\r\n[/URL]"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]$headers [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#dd0000]"User-Agent: Opera/8.01 (Windows NT 5.1; U; ru)\r\n\r\n"[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]fwrite[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]$headers[/COLOR][COLOR=#007700]);  [/COLOR]
    [COLOR=#007700]   while([/COLOR][COLOR=#0000bb]$text [/COLOR][COLOR=#007700]!= [/COLOR][COLOR=#dd0000]"\r\n"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000bb]$text [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]128[/COLOR][COLOR=#007700]);  [/COLOR]
    [COLOR=#0000bb]$text [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]""[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#007700]   while(![/COLOR][COLOR=#0000bb]feof[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700])) [/COLOR][COLOR=#0000bb]$text [/COLOR][COLOR=#007700].= [/COLOR][COLOR=#0000bb]fgets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]4096[/COLOR][COLOR=#007700]);  [/COLOR]
    [COLOR=#0000bb]fclose[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]$fp[/COLOR][COLOR=#007700]);  [/COLOR]
    [COLOR=#007700] }  [/COLOR]
    [COLOR=#007700] echo [/COLOR][COLOR=#0000bb]$text[/COLOR][COLOR=#007700];  [/COLOR]
    [COLOR=#0000bb]?>[/COLOR] [/COLOR]
    [/COLOR]
     
  3. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Или типо такого можно
    PHP:
     $handle curl_init(); 

    curl_setopt($handleCURLOPT_COOKIE'remixlang=0;'); 
    curl_setopt($handleCURLOPT_PROXY'91.196.0.75:80'); 
    curl_setopt($handleCURLOPT_VERBOSEfalse); 
    curl_setopt($handleCURLOPT_HEADERfalse); 
    curl_setopt($handleCURLOPT_RETURNTRANSFERtrue); 
    curl_setopt($handleCURLOPT_REFERER'http://www.weblancer.net/'); 
    curl_setopt($handleCURLOPT_URL'http://www.weblancer.net/account/login/'); 
    curl_setopt($handleCURLOPT_USERAGENT'User-Agent: Mozilla/6.0 (Windows; U; Windows NT 6.1; ru; rv:2.9.0.4) Gecko/2009102920 Firefox/3.1.4'); 
    curl_setopt($handleCURLINFO_HEADER_OUTtrue); 
    curl_setopt($handleCURLOPT_POSTtrue); 
    curl_setopt($handleCURLOPT_POSTFIELDS'action=login&login=Buffalon&password=xXx');  

    echo 
    $response iconv('windows-1251''UTF-8'curl_exec($handle)); 
    //echo $response = curl_exec($handle); // У меня просто все на UTF8 

    curl_close($handle);  
     
  4. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    Хм… Имхо, он хочет, чтобы не скрипт подменял поле Referer, т. к.:
    Поэтому отвечу по теме.

    Все HTTP-заголовки (включая поле Referer) формирует и отправляет браузер. Его поведением управлять нельзя - и это правильно. Единственный выход - это отправлять данные формы на свой скрипт - оттуда читать все данные и формировать уже новый запрос с помощью cURL или сокетов (см. примеры выше). Но пользователь будет видеть (происходит это очень быстро, но заметно), как его перенаправляют.
     
  5. koroliov

    koroliov Создатель

    Регистр.:
    4 июн 2007
    Сообщения:
    27
    Симпатии:
    4
    Можно попробовать дополнение для дополнение Firefox - Modify Headers
     
  6. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    и ставить его придется каждому пользователю, посетившему сайт
     
  7. Solovyy

    Solovyy Создатель

    Регистр.:
    18 сен 2008
    Сообщения:
    47
    Симпатии:
    7
    Если сначала твой скприт принимает данные, то им можно поменять переменную окружения передав ее дальше (если "чужой" обработчик инклюдится, например).
     
Статус темы:
Закрыта.