В каких случаях HTTP REFERER будет пустым


Я знаю, что можно получить пустой HTTP_REFERER. При каких обстоятельствах это происходит? Если я получаю пустой, всегда ли это означает, что пользователь изменил его? Является ли получение пустого таким же, как получение нулевого? и при каких обстоятельствах я тоже это получу?

4 124

4 ответа:

Он будет/может быть пустым, когда пользователь

  • введите URL-адрес сайта в адресной строке браузера.
  • посетил сайт с помощью закладки, поддерживаемой браузером.
  • посетил сайт в качестве первой страницы в окне / вкладке.
  • щелкнул ссылку во внешнем приложении.
  • перешли от URL-адрес HTTPS в URL-адрес http.
  • переключился с https URL на другой https URL.
  • установлено программное обеспечение безопасности (антивирус / брандмауэр / etc), который удаляет реферер из всех запросов.
  • находится за прокси, который лишает реферер от всех запросов.
  • посетил сайт программно (например, curl) без установки заголовка реферера (searchbots!).

HTTP_REFERER-отправлено браузером, указав последнюю страницу, которую браузер просматривал!

Если Вы доверяете [HTTP_REFERER] по любой причине, которая важна, вы не должны, так как ее можно легко подделать:

  1. некоторые браузеры ограничивают доступ, чтобы не разрешить передачу HTTP_REFERER
  2. введите адрес в адресной строке не будет передавать HTTP_REFERER
  3. открыть новое окно браузера не будет передавать HTTP_REFERER, потому что HTTP_REFERER = NULL
  4. имеет некоторый браузер аддон, который блокирует его по соображениям конфиденциальности. Некоторые брандмауэры и AVs делают это.

попробуйте это расширение Firefox, вы сможете установить любые заголовки, которые вы хотите:

@мастер праздника:

Firefox:

расширения:refspoof,refontrol,изменить заголовки, no-referer

полностью отключить: опция доступна в about:config в сети".http.sendRefererHeader " и вы хотите установить это в 0, чтобы отключить передачу реферера.

Google chrome / Chromium:

расширения:noref,spoofy,внешний noreferrer

полностью отключить: изменить ~/.config / google-chrome / по умолчанию / настройки или ~/.config / chromium / Default / Preferences и установите это:

{
   ...
   "enable_referrers": false,
   ...
}

или просто добавить ... нет-переходим на ярлык или в командной строки:

google-chrome --no-referrers

Опера:

полностью отключить: Настройки > Настройки > Дополнительно > сеть, и снимите флажок "отправить информацию реферера"

сервис веб-спуфинг:

http://referer.us/

автономный фильтрация прокси (подделка любого заголовка):

с Privoxy

спуфинг http_referer при использовании wget

'-- referer=url'

подмена http_referer при использовании curl

- e, -- referer

спуфинг http_referer с telnet

telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)

список BalusC является твердым. Кроме того, это поле часто кажется пустым, когда пользователь находится за прокси-сервером. Это похоже на то, чтобы быть за брандмауэром, но немного отличается, поэтому я хотел бы упомянуть об этом для полноты картины.

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

<meta name="referrer" content="none">

хотя Chrome и Firefox уже реализовали черновую версию политики реферера, вы должны быть осторожны с ней, потому что, например, Chrome ожидает no-referrer вместо none (и я видел также never где-то).