Что Laravel 5.4 вам реферера

Что Laravel 5.4 вам реферера

16.08.2017 03:21:26 Просмотров 73 Источник

Я пытаюсь получить реферер моих пользователей. Например, если они приходят из facebook, youtube, google или что-нибудь еще.

Теперь я попробовал что-то вроде этого:

        $referrer = $this->request->headers->get('referer');
        $url = $referrer ? $this->to($referrer) : $this->getPreviousUrlFromSession();
        return $url ?: $this->to('/'); // returns: Method referer does not exist.

Этот:

        return $_SERVER["HTTP_REFERER"] // returns Undefined index: HTTP_REFERER

тот:

session_start();

if ( !isset( $_SESSION["origURL"] ) )
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"]; // returns Undefined index: HTTP_REFERER

Но ничего не сработало, как ожидалось.

Кто-нибудь знает решение, как я могу проверить реферер?

Мне это нужно, потому что я хочу проверить, приходит ли пользователь с какого-то определенного URL-адреса, и если да, я хочу дать пользователю несколько дополнительных "кликов" для ранжирования. Что-то вроде небольшой партнерской системы.

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer#comment78384972_45713409
Имейте в виду-реферер подчиняется клиенту, объявляющему об этом правдиво... он не надежен в "истинном" смысле.

Ответы - Что Laravel 5.4 вам реферера / Laravel 5.4 get Referer

WebFreak

16.08.2017 03:26:07

Похоже, это будет делать то, что вы ищете :

Request::server('HTTP_REFERER').

Вы можете прочитать документ Api здесь :

http://laravel.com/api/5.0/Illuminate/Http/Request.html#method_server

https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713501#comment78385518_45713501
Я пробовал это, но это возвращает всегда " null"
https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713501#comment78385544_45713501
@PHPprogrammer42 тогда, вероятно, не отправлен реферер.
https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713501#comment78385776_45713501
Это задается агентом пользователя. Не все агенты пользователей будут устанавливать это, и некоторые предоставляют возможность изменять HTTP_REFERER как функцию. Короче говоря, ему действительно нельзя доверять.
https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713501#comment78386012_45713501
МММ.. Итак, что бы вы сделали, чтобы проверить, щелкнул ли пользователь ссылку, например: "mywebsite.com/unicorn/1111111 -- не приходя с самого моего сайта? Поэтому я могу дать "поток" с идентификатором 1111111 несколько дополнительных кликов
Jerodev

16.08.2017 03:32:18

Причина, по которой вы получаете Undefined index: HTTP_REFERER, заключается в том, что не все запросы имеют заголовок HTTP_REFERER, а только большинство запросов, поступающих с других веб-сайтов. Если вы посещаете веб-сайт непосредственно с url-адресом, вы не будете отправлять заголовок HTTP_REFERER.

Итак, вы должны проверить, установлен ли заголовок первым.

if (!isset($_SESSION["origURL"]) && array_key_exists('HTTP_REFERER', $_SERVER))
    $_SESSION["origURL"] = $_SERVER["HTTP_REFERER"];
https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713646#comment78385885_45713646
ну, это прекрасно работает, если я пришел из facebook. Я в основном хочу проверить, если пользователь приходит из whatsapp. Если я отправлю URL-адрес, который перенаправляет на этот код, я получу только "null". Может быть, это потому, что whatsapp-это приложение, а не веб-сайт. Но если я посмотрю в свои журналы, я вижу, что реферер chat.whatsapp.com -- странно
https://stackoverflow.com/questions/45713409/laravel-5-4-get-referer/45713646#comment78386395_45713646
Я получаю лог-файлы конкретной статистической программы, которую я использую на своем веб-сайте. Там я вижу некоторые пользовательские данные, такие как IP, браузер, реферер и т. д.
Syed Mobarak

04.12.2019 10:35:51

Я надеюсь, что это сообщение найдет вас счастливым с вашим кодом. Однако, если вы столкнулись с какой-либо проблемой с URL-адресом реферера, вам, вероятно, следует прочитать эту статью https://scotthelme.co.uk/a-new-security-header-referrer-policy/ .

Заголовок политики реферера является ключом к такой проблеме. Я столкнулся с проблемой с URL-адресом реферера в моем приложении Laravel + NGINX и попробовал все возможные способы исправить это с помощью кода, упомянутого в комментариях выше (назад, предыдущий, заголовок и т. д.) но, наконец, нашел эту статью, чтобы обогатить мои знания, прежде чем исправлять мою проблему соответствующим образом.

lofihelsinki

04.12.2019 11:11:00

Это зависит от клиента, чтобы отправить информацию о реферере в заголовок HTTP-запроса.

Так что если клиент (браузер, приложения и т. д.) не отправляет реферер, он не будет доступен серверу в заголовках запроса. Я думаю, что приложение WhatsApp отключило отправку реферера, поэтому нет способа его получить.

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

Больше информации в моем ответе здесь: https://stackoverflow.com/questions/49050268/does-document-referrer-equal-the-http-referer-header/49050494

Если вы не уверены в том, что клиент отправляет реферер, его легко проверить с помощью JavaScript (реферер пишется здесь иначе, чем заголовок HTTP, чтобы добавить путаницу):

console.log(
    document.referrer
);
Закрыть X