Можно ли у iframe трафа подделать referer ?

Discussion in 'PHP' started by Z0diac, 20 Aug 2012.

  1. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Есть сайт A. Его страницы открываются во фрейме на сайте B. При открытии сайта A на него в качестве реферера передается адрес сайта B. Можно ли как то подделать адрес сайта B на свой в реферере, т. е. подделать реферера ?
     
  2. Romashka_Sky

    Romashka_Sky New Member

    Joined:
    11 Jul 2011
    Messages:
    12
    Likes Received:
    1
    Reputations:
    0
    Нет, нельзя
     
  3. zdarke

    zdarke New Member

    Joined:
    6 Jun 2012
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Тоже когда-то искал, пытался через JS как-то document.referrer подменить, но всё тщетно, рабочего способа так и не нашёл.
     
  4. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    нельзя подменить но можно просто убрать Реферер через JS.
     
  5. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Расскажи, как это сделать. Было бы интересно узнать.
     
  6. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    А вот есть предложения в темах продажи трафа. Траф с подменой реферера, каким образом они это делают ?
     
  7. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Сайт A открывается во фрейме сайта X. Сайт X открывается во фрейме сайта B
     
  8. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    M_script, special for you.

    Обычная отправка GET запроса.

    Code:
    <img src="http://mail.ru" />
    [​IMG]

    Теперь убираем Referer
    Code:
    <script>  
    document.location='javascript:"<img src=http://mail.ru />"';  
    </script>
    
    [​IMG]

    Думаю ты понял.

    P.S. Проверено мной на Опере и в IE.
    Способ можно отлично использовать в JS-LOIC.

    Я задавал этот вопрос тут
     
  9. Z0diac

    Z0diac New Member

    Joined:
    8 Aug 2012
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    Таким образом реферер просто отсутствует. А я спрашивал подделать его, поставить желаемый.
     
  10. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    Я написал для М_скрипта.

    Подделать никак.
     
  11. seofilms

    seofilms Banned

    Joined:
    27 May 2009
    Messages:
    66
    Likes Received:
    46
    Reputations:
    14
    Почему никак ? Сделать iframe на страницу которая бы переходила на нужный сайт с подменой реффера.
     
  12. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    Уже этот вариант был. ТСу не подходит наверно.
     
  13. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    noxjoker, твой способ подойдет, чтобы скрыть реферер в GET-запросе. Но он не скроет реферер при загрузке страницы:
    Code:
    <script>  
    document.location='javascript:"<iframe src=http://site.ru />"';  
    </script>
     
  14. noxjoker

    noxjoker Member

    Joined:
    7 Aug 2009
    Messages:
    189
    Likes Received:
    24
    Reputations:
    0
    Да, соглан тэг iframe как бы не крутил вечно с referer.
    ОФФТОП: Было б неплохо если б можно было считывать сорс страницы с тэга img.
     
  15. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    87
    Likes Received:
    22
    Reputations:
    31
    Ситуация с реферами в нынешних браузерах довольно простая:

    В целом рефер передается всегда, когда браузер лезет с одного сайта на другой, либо по клику, либо за элементами страницы (img, script, css, iframe и тп). Если пользователь сам руками вбил адрес, то рефера, понятно, нет.

    Редиректы обрабатываются по такому принципу: редирект через HTTP заголовок на рефера не влияет. На пхп такие редиректы обычно выглядят как-то так:
    Code:
    header('Location: http://anothersite.ru/'); 
    С другой стороны, если браузер уже начал рисовать страницу, а тут его переправили на другой сайт, то эта страница и становится новым рефером. Вариантов масса:

    Через meta тэги:
    HTML:
    <meta http-equiv="refresh" content="0;URL='http://site.com'">
    Джаваскриптом через объект document.location
    Code:
    document.location.replace('http://site.com');
    Можно автоматом кликать на ссылки:
    HTML:
    <a id='superlink' href='http://site.com'>Иди сюда</a>
    <script>document.getElementById('superlink').click();</script>
    Прим: click() работает не на всех браузерах, файрфоксу нужно отдельное приглашение

    А можно воспользоваться веб-формами:
    HTML:
    <form id='superform' method='post' action='http://site.com'></form>
    <script>document.getElementById('superform').submit();</script>
    К этим правилам есть одно важное исключение: при переходе с HTTPS адреса на HTTP реферер не передается вообще - не зависимо от метода. К сожалению, браузеры, особенно эсплорер, ругаются, когда на одной странице присутствуют и http, и https. Скрывать источники трафа таки способом можно, а айфремингом заниматься проблематично.

    С другой стороны, если рассчитывать на новое поколение браузеров с HTML5, то достаточно добавить атрибут noreferrer и всего делов:
    HTML:
    <a href="http://site.com" rel='noreferrer' > 
    Дальше все зависит от конкретной ситуации и креативности автора.

    Базовый вариант: хитрый сайт А фреймит сайт Б, который редиректит, (скажем, джаваскриптом) на сайт В. Можно, конечно, тупо арендовать сервак или взять фрихостинг, а можно найти XSS уязвимость и инжектить скрипт редиректа прямо на ходу. Можно найти сайт, который сам что-то уже фреймит (специально, или от хронического XSSа), и подсунуть ему страницу, которая джаваскриптом подменяет внешний фрейм на сайт, куда льем трафик.

    Сайт А (не наш, чужой):
    HTML:
    <iframe src='http://siteB.com'></iframe>
    Сайт Б (наш):
    Code:
    top.location.href = 'http://siteС.com';
    В итоге браузер отправляется на siteC.com с рефером от SiteA.com

    и наконец, есть всякая вэкзотика, которая зависит от особенностей браузера. На Хроме можно вот так вывернуться через протокол data:

    PHP:
    <?php
    $target
    ='http://site.com';
    $meta "<meta http-equiv=\"refresh\" content=\"0;URL='$target'\">";
    $url "data:text/html;base64,".base64_encode($meta);
    echo 
    "<script>document.location='$url';</script>";
    ?>
    Если зафреймить этот скрипт и перебрасываь им хромовский траф в нужном направлении, то реферов не будет вообще. На других платформах тоже свои приколы.

    Примечание: Пользуйтесь заголовком X-Frame-Origin - и никто ваш сайт не зафреймит.
     
    2 people like this.
  16. Cowboyl0l

    Cowboyl0l New Member

    Joined:
    19 Nov 2011
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    есть скрипт на локалхосте ну впрочем не важно где, отправляет post запрос на 1 сайт, можно ли туда в этом случаее подменить refera через hosts не вариант потому что refer и куда отправляеться запрос 1 домена, хотя не думал а о таком что можно в работу скрипта добавить изменение в хостах... подскажите опытные :)
     
  17. scanislav

    scanislav Elder - Старейшина

    Joined:
    25 Jun 2010
    Messages:
    87
    Likes Received:
    22
    Reputations:
    31
    Если браузер собственный, то вообще какие угодно установки можно поменять, включая и заголовки. Или я не так понял? Что требуется?
     
  18. Cowboyl0l

    Cowboyl0l New Member

    Joined:
    19 Nov 2011
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    да бразер свой, каким оброзом это можно сделать? желательно средствами php
     
  19. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    Cowboyl0l,
    PHP:
    curl_setopt($curlCURLOPT_REFERER'http://site.com');