$_SERVER[HTTP_REFERER] Факторы надежности с HTTP-запросами изображений

Говорят, что нельзя доверять $_SERVER["HTTP_REFERER"], потому что он может либо…

  1. Быть подделанным
  2. Не устанавливается браузером

http://php.net/manual/en/reserved.variables.server.php

$_SERVER["HTTP_REFERER"]

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

Проведя некоторое тестирование во всех основных браузерах, включая IE6 и выше, мне еще предстоит найти тот, который не устанавливает $_SERVER["HTTP_REFERER"] или устанавливает его неправильно.

Можем ли мы сказать, что все браузеры на самом деле устанавливают эту переменную или что большинство из них так и делают? Есть ли список браузеров, которые не работают?


person JavaScript_is_4_Real_men    schedule 23.10.2014    source источник
comment
Вы пробовали запускать сценарии получения URL-адресов с сервера на задании cron? Я не совсем уверен, что ненадежность http_referer связана с обычным пользователем. Возможно, это было скорее предупреждением о том, что любой, кто хочет обойти ваши меры безопасности, зависящие от http_referer, может легко это сделать.   -  person Kai Qing    schedule 23.10.2014
comment
дело не в том, что браузер его не устанавливает, а в том, что вы не можете ДОВЕРЯТЬ ему. То, что обычно это правильно, не означает, что вы можете предполагать, что это всегда правильно.   -  person Marc B    schedule 23.10.2014
comment
@MarcB Но есть ли браузеры или случаи, когда он просто не установлен?   -  person JavaScript_is_4_Real_men    schedule 23.10.2014


Ответы (2)


Я не уверен, что вы можете даже дать список браузеров/UA, которые были бы последовательными в этом отношении.

Учитывать:

  1. Боты и пауки.
  2. Javascript можно использовать для изменения реферера.
  3. Прямой доступ.
  4. Что касается № 1, множество других автоматических HTTP-клиентов.
  5. Большинство браузерных расширений «конфиденциальности», расширения для переключения рефереров, режим инкогнито/приватный просмотр и т. д.
person Kevin_Kinsey    schedule 23.10.2014

Из Справочника хакера веб-приложений:

Заголовок Referer строго необязателен в соответствии со стандартами w3.org. Следовательно, хотя большинство браузеров реализуют его, его использование для управления функциональностью приложения следует рассматривать как «взлом».

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

person Aris    schedule 23.10.2014