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

Говорят, что он не доверяет $ _SERVER [«HTTP_REFERER»], потому что он тоже может …

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

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

$_SERVER["HTTP_REFERER"]

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

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

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

0

Решение

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

Рассматривать:

  1. Боты и Пауки.
  2. Javascript может быть использован для изменения реферера.
  3. Прямой доступ.
  4. Связанный с # 1, много других автоматизированных клиентов HTTP.
  5. Большинство расширений «приватности» браузера, переключающие ссылки, режим инкогнито / приватного просмотра и т. Д.
1

Другие решения

Из Руководства хакера веб-приложений:

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

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

0

По вопросам рекламы [email protected]