Как определить HTTP_REFERER?

Тема в разделе "PHP", создана пользователем cx717, 26 май 2021.

  1. cx717

    cx717

    Регистрация:
    4 сен 2014
    Сообщения:
    2
    Симпатии:
    0
    День добрый всем.
    Может кто подскажет в каком направлении копать - буду признателен.
    В корне сайта создана страница domain.ru/link.php с элементарным кодом:
    Код:
    <?php 
     echo '<a href="domain.ru/script.php">Push Me</a>';
    
    Так же в корне есть страница domain.ru/script.php с элементарным кодом:
    Код:
    <?php 
     echo 'http_referer = ' . $_SERVER['HTTP_REFERER'];
    
    Так вот $_SERVER['HTTP_REFERER'] не определяется, хотя мы попадаем на страницу
    domain.ru/script.php со страницы domain.ru/link.php и HTTP_REFERER должен
    определиться как domain.ru.
    Вопрос:
    - возможно ли, что в настройках сервера намеренно обнуляется $_SERVER['HTTP_REFERER'] ?
    - сайт на битриксе - могут ли его настройки ( битрикса ) обнулять $_SERVER['HTTP_REFERER'] при том, что файлы лежат в корне и по идее не затрагиваются битриксом?
    - может ли .htaccess ( который лежит в корне сайта ) обнулять $_SERVER['HTTP_REFERER'] ?
     
  2. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    803
    Симпатии:
    399
    $_SERVER['HTTP_REFERER'] - это суперглобальная переменная, которую вытягивает из браузера клиента сервак при установке коннекта, НО, если у меня:
    • включено в браузере "не отслеживать"
    • сайт в "закладке"
    • переброс с http на httpS
    • сайт установлен загрузкой по умолчанию (при открытии браузера)
    • парсинг\заход через cURL
    • определённые "тороподобные" анонимные браузеры\приложения
    то с большой вероятностью что в суперглобальную переменную $_SERVER['HTTP_REFERER'] ничего не запишет, да и по RFC это значение не есть обязательным.
     
    $iD нравится это.
  3. SinTaksiS-11

    SinTaksiS-11

    Регистрация:
    10 апр 2023
    Сообщения:
    12
    Симпатии:
    1
    HTTP-заголовок "Referer" может быть изменен или удален по разным причинам, в том числе по настройкам браузера пользователя, настройкам прокси-сервера или настройкам веб-сервера.
    1. Да, настройки сервера могут быть настроены таким образом, чтобы обнулять HTTP-заголовок "Referer". Это может быть связано с безопасностью или конфиденциальностью данных.
    2. Настройки Битрикса могут повлиять на HTTP-заголовок "Referer", но только если они явно устанавливаются в коде или настройках. Если файлы лежат в корне и не затрагиваются Битриксом, то это не должно повлиять на HTTP-заголовок "Referer".
    3. .htaccess может изменять настройки веб-сервера, в том числе HTTP-заголовок "Referer". Если в .htaccess есть правила, которые изменяют HTTP-заголовок "Referer", то это может быть причиной его отсутствия в скрипте. Однако, в вашем примере .htaccess не упоминается, поэтому это, вероятно, не является причиной проблемы.