Что такое айди реферера. Что такое http_referer и как его изменить? Схема «Реферер Реферальная ссылка Рефералы»

Реферер

Реферер

Реферер - запись в лог-файлах сервера о посетителе сайта. Если поле реферера пусто, то это обычно означает, что пользователь набрал адрес непосредственно в своем браузере. Реферрер используется при анализе статистики сайта.

По-английски: Referrer

Синонимы: Ссылающийся домен

См. также: Лог-файлы

Финансовый словарь Финам .


Синонимы : Смотреть что такое "Реферер" в других словарях:

    Сущ., кол во синонимов: 1 адрес (12) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

    Запись в лог файлах сервера о посетителе сайта. Если поле реферера пусто, то это обычно означает, что пользователь набрал адрес непосредственно в своем браузере. Реферрер используется при анализе статистики сайта Словарь бизнес терминов. Академик … Словарь бизнес-терминов

    SSL Заголовки (список) Cookie · ETag · Referer · User Agent Коды состояния referer (HTTP referer) в один из заголовков запроса клиента. Содержит Любопытно, что написание английского слова referrer как referer популярная ошибка. Настолько… … Википедия

    В программировании слабая ссылка (англ. weak reference) специфический вид ссылок на динамически создаваемые объекты в системах со сборкой мусора. Отличается от обычных ссылок тем, что не учитывается сборщиком мусора при выявлении… … Википедия

    Файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: дату и время визита пользователя; IP адрес компьютера пользователя; наименование браузера пользователя; URL запрошенной пользователем страницы; реферер … Финансовый словарь

    - (или реферрал, от англ. referral «ссылочный») участник партнёрской программы, зарегистрировавшийся по рекомендации другого участника. Такая схема маркетинга широко распространена в интернете и предполагает регистрацию на сайтах,… … Википедия

    Приветствие, адресочек, адресок, надсыл, код, местоположение, местожительство, домицилий, ячейка Словарь русских синонимов. адрес сущ., кол во синонимов: 12 адресок (4) … Словарь синонимов

    Файл, содержащий системную информацию о работе сервера и информацию о действиях пользователей: дату и время визита пользователя; IP адрес компьютера пользователя; наименование браузера пользователя; URL запрошенной пользователем страницы; реферер … Словарь бизнес-терминов

Здравствуйте.

Сегодня я дополню цикл статей про CSRF. Но теперь я буду плавно переходить на «ту сторону баррикад». Как говорится кто предупрежден, тот вооружен. Если разработчик будет знать как орудует злоумышленник то он будет знать как и от чего защищаться.

Эта статья является переработанным переводом статьи «Stripping Referrer for fun and profit » зарубежного автора Krzysztof Kotowicz. Мне понравились методы используемые в его статье и я хочу поделится ими с вами. Обращу ваше внимание что это все же переработанный перевод, так как часть материала предложенного в оригинале я уже изложил у себя в статьях, и дублировать его я смысла не вижу.

В общем если вас интересует как отредеректить пользователя без указания Referer то прошу под кат:)

Что такое реферер?

Referer — это небольшая часть информации, которую браузер посылает на сервер, когда вы переходите по ссылке с одного сайта на другой. Это полезно для разработчиков. К примеру они могут определить что посетитель пришел к вам на сайт из поисковых систем и затем адаптировать страницы сайта под ваш запрос. Но отчасти это можно назвать и утечкой личной информации, поэтому все браузеры имеют возможность отключить передачу Referer. Но так или иначе сам заголовок может быть интересен с точки зрения безопасности.

Пример использования реферера

Иногда реферер используется в качестве механизма контроля доступа. А началось все с ссылок на чужой контент. Спам сайты начали добавлять чужой контент (например, изображения) с других сайтов, простой вставкой Для поситителей это было не заметно, и спам страница выглядела для них вполне легально, но этим самым она воровала пропускную способность (и контент) оригинального сайта. Чтобы не допустить этого, разработчики начали проверку заголовка Referer, который передавал браузер. Если URL реферера содержал оригинальный веб-сайт, то сервер вернет изображение. Если реферер содержал адрес другого сайта то сервер возвращал ошибку.

Подходим к CSRF

Затем появилась . Любой веб-сайт может отправить потенциально опасные запросы к уязвимым сайтам и, например, удалить аккаунт на уязвимом сайте, изменить адрес электронной почты или настроить почтовый фильтр и прочее в тайне от пользователя. Некоторые веб-разработчики стали добавлять простой механизм защиты: они стали проверять реферер! Осуществлялась эта проверка следующим образом:

  • Если Referer содержит адрес своего хоста то обрабатываем запрос
  • В других случаях запрос блокируется

Казалось бы задача решена. Только допустимые страницы могут слать успешные запросы. Но появилась одна проблема — что делать с пользователями у которых отключен Referer? Они просто не смогут пользоваться данным приложением так как их запросы будут блокироваться. Во многих системах это было решено следующим образом: подобная ситуация с отсутствием реферера трактовалась в сторону пользователя и запрос считался легальным и поступал на обработку.

Скрываем Referer

Такое решение проблемы создало огромную дыру в безопасности и злоумышленники начали искать способы этим воспользоваться. Было предложенно несколько методов подобного сокрытия но с использованием серверных технологий редиректа. Но данные методы мало интересны так как они довольно известны. Я же хочу предложить вам другой вариант — возможность редиректа пользователя с генерацией произвольного GET или POST запроса только со стороны клиента на чистом яваскрипте.
Вот примеры реализаций:

Function lose_in_webkit(url) {
// chrome loses it in data uris
location = "data:text/html,location="" + url + "&_=" + Math.random() + """;
return false;
}

Function lose_in_ie(url) {
// ie loses referer in window.open()
window.open(url + "&_="+Math.random());
}

Function lose_in_ff(url) {
// ff needs data:uri AND meta refresh. Firefox, WebKit and Opera
location = "data:text/html,";
}

Function post_and_lose(url) {
// POST request, WebKit & Firefox. Data, meta & form submit trinity
location = "data:text/html,";
}

И собственно модифицируя данные способы можно обходить защиту от CSRF построенную на базе проверки Referer.

Заключение

Прим. переводчика: надеюсь вы теперь поняли почему я утверждал в что защита от CSRF только на основе проверки Referer небезопасна?

Заголовок HTTP referer передается с браузера на сервер, чтобы сообщить, на какой странице читатель находился перед тем, как перешел на вашу. Данная информация может быть использована, чтобы предоставить специальные предложения для целевых посетителей, перенаправить клиентов или сгруппировать посетителей сайта по определенным критериям.

Можно использовать такие языки, как JavaScript , PHP или ASP , чтобы считать информацию, содержащуюся в заголовке referer . А также добавить строки кода в файл .htaccess .

Сбор из referer с помощью PHP, JavaScript и ASP

PHP хранит информацию из referer в системной переменной HTTP_REFERER . Чтобы отобразить ее на PHP-странице , нужен следующий код:

if(isset($_SERVER["HTTP_REFERER"])) { echo $_SERVER["HTTP_REFERER"]; }

Он проверяет, содержит ли переменная значение, а затем выводит его на экран. Вместо echo $_SERVER[‘HTTP_REFERER’]; можно задать строки скрипта таким образом, чтобы проверить различные referer .

JavaScript использует для чтения server http referer DOM . Так же, как в случае с PHP , нужно проверить, содержит ли заголовок значение. Если вы хотите управлять переменно, то сначала нужно установить данную переменную. Вот как отобразить referer на странице с помощью JavaScript .

Обратите внимание, что DOM использует альтернативное написание referer :

if (document.referrer) { var myReferer = document.referrer; document.write(myReferer); }

После этого можно использовать заголовок в скрипте с переменной myReferer .

ASP , как и PHP , устанавливает referer в качестве системной переменной. После чего нужно получить данную информацию следующим образом:

if (Request.ServerVariables("HTTP_REFERER")) { Dim myReferer = Request.ServerVariables("HTTP_REFERER") Response.Write(myReferer) }

Также можно настроить скрипт с использование переменной myReferer .

После того как вы получили referer, что с ним делать?

После того, как вы получили информацию из HTTP referer , ее можно использовать в скриптах сайта. Например, чтобы вывести данные о том, откуда пришли посетители. Но гораздо интереснее использовать заголовок для отображения различной информации в зависимости от того, откуда пришли пользователи.

Общее приветствие

Можно вывести URL-адрес из referer в верхней части страницы в общем приветствии:

if (document.referrer) { document.write("

Thank you for visiting from " + document.referrer + "

"); }

Приветствие посетителей из поисковой системы

Когда кто-то перешел на ваш сайт из поисковой системы, можно предоставить таким пользователям немного дополнительной информации, чтобы побудить их дольше оставаться на ресурсе. Например, вывести для них ссылку на новостную рассылку сайта:

if (document.referrer) { searchEngine = /google.com/; if (searchEngine.test(document.referrer)) { document.write("

Welcome Google visitor!

"); } }

Передача информации в формы

Если у вас на сайте есть ссылка, кликнув по которой посетители могут сообщить о проблемах с ресурсом. Люди часто сообщают о проблемах с веб-страницей без указания URL-адреса , на котором она возникла. Но можно использовать информацию из server http referer , чтобы предположить, о какой проблеме на какой странице идет речь.

Этот скрипт добавляет referer в скрытое поле формы:

function start() { var ref = document.getElementById("referrer"); ref.value = document.referrer; } onload = start;

Создание специального предложения для определенных посетителей

Возможно, вы захотите предоставить людям, которые приходят с конкретной страницы, специальное предложение на ваши товары или услуги. C этой целью можно было бы открыть новое окно, чтобы предложить страницу. Но помните, что людям не всегда нравятся всплывающие окна, так что используйте их осторожно:

if (document.referer == "http://domain/special-offer.htm") { var newWin = window.open("http://mydomain/special.htm","special"); }

Направление посетителей на другую страницу

Также можно направить людей с определенным HTTP referer на другую страницу. Будьте осторожны, так как Google и другие поисковые системы могут расценить это, как введение в заблуждение, и наказать ваш сайт:

if (document.referrer == "http://domain/redirect") { location.href = "http://www.newpage.com/"; }

Блокирование пользователей по referer с помощью.htaccess

Если вы страдаете от referer-спама с одного домена, можно просто заблокировать его на вашем сайте. Если вы используете Apache с установленным mod_rewrite , тогда можно блокировать спам с помощью нескольких строк кода (rewritecond http referrer , запрет входа без referrer ).

Добавьте следующие строки в файл.htaccess :

RewriteEngine on # Options +FollowSymlinks RewriteCond %{HTTP_REFERER} spammer.com RewriteRule .* - [F]

Измените spammer.com на домен, который нужно заблокировать. Не забудьте добавить перед периодами в домене.

Не полагайтесь на referer

Помните, что возможна подмена HTTP referer , поэтому не стоит использовать его для важных страниц. Лучше применять его в качестве дополнения. Но если страница должна быть доступна только конкретным пользователям, то придется установить для нее пароль через файл htaccess .

Эта статья преимущественно посвящается пользователям, которые зарабатывают в системах автосерфинга, биржах купли-продажи трафика и не знают ч то такое http_referer и как его изменить на поисковый.

Определение, что такое HTTP_REFERER , возьмем из . Там все подробно и понятно расписано, а цель этой статьи объяснить, что такое поисковый HTTP_REFERER.

HTTP_REFERER — в протоколе HTTP один из заголовков запроса клиента. Содержит URL источника запроса. Если перейти с одной страницы на другую, referer будет содержать адрес первой страницы. Часто на HTTP-сервере устанавливается программное обеспечение, анализирующее referer и извлекающее из него различную информацию. Так, например, владелец веб-сайта получает возможность узнать, по каким поисковым запросам, как часто и на какие именно страницы попадают люди. Если HTTP-клиент загружает с сервера картинку, представленную на какой-либо странице, то referer будет содержать адрес этой страницы. Некоторые HTTP-серверы перед выдачей картинки анализируют referer и не показывают картинку, если запрос приходит с другого сайта (а, например, показывают маленькое изображение-заглушку).

Любопытно, что написание английского слова referrer как referer - популярная ошибка. Настолько популярная, что вошла в официальные спецификации протокола HTTP.

Как уже упоминалось, бывает, что сервер отказывается выдавать нужное содержимое без определённой строки referer, поэтому многое клиентское ПО имеет возможность выставить эту строку вручную. Например wget поддерживает опцию «--referer», позволяющую выставить нужную строку и получить доступ к требуемому содержимому веб-сервера.

Поисковый HTTP_REFERER определяется как запрос, введенный в поисковой строке поисковой системы и системами статистики будет определятся, что пользователь перешел на сайт из конкретной поисковой системы по конкретному поисковому запросу. Многие автосерфинги с программой имеют возможность подменять http_referer на поисковый. Такая возможность позволит добавить не очень качественные сайты в , которые требуют среднюю посещаемость, например, от 100 хостов в сутки. Другими словами Вы можете накрутить посещаемость и поведенческие факторы на своем сайте — сейчас многие автосерфинги в программе имитируют движение мыши, переходы по страницам с задержкой на ней на заданное время и клики по рекламе.

Чтоб было более понятно, я покажу, как подменить http_referer на поисковый в картинках .

Открываем любой браузер, переходим в поисковую систему, например, Гугл и в строке поиска вводим нужный нам поисковый запрос и нажимаем ввод. Копируем содержимое адресной строки в соответствующее место программы для автосерфинга, куда нужно вставлять http_referer-ы. Чтоб Вас не заподозрили в накрутке, вводите несколько http_referer-ов (каждый с новой строки), задавайте разные поисковые запросы, соответствующие тематике Вашего сайта и пользуйтесь разными поисковыми системами.

Аналогичные действия производим, если Вам нужно сымитировать переходы из социальных сетей, каталогов, рейтингов, досок объявлений или других сайтов. Достаточно перейти на ту страницу, где есть ссылка на Ваш сайт и скопировать содержимое адресной строки.