В каких случаях HTTP REFERER будет пустым
Я знаю, что можно получить пустой HTTP_REFERER. При каких обстоятельствах это происходит? Если я получаю пустой, всегда ли это означает, что пользователь изменил его? Является ли получение пустого таким же, как получение нулевого? и при каких обстоятельствах я тоже это получу?
4 ответа:
Он будет/может быть пустым, когда пользователь
- введите URL-адрес сайта в адресной строке браузера.
- посетил сайт с помощью закладки, поддерживаемой браузером.
- посетил сайт в качестве первой страницы в окне / вкладке.
- щелкнул ссылку во внешнем приложении.
- перешли от URL-адрес HTTPS в URL-адрес http.
- переключился с https URL на другой https URL.
- установлено программное обеспечение безопасности (антивирус / брандмауэр / etc), который удаляет реферер из всех запросов.
- находится за прокси, который лишает реферер от всех запросов.
- посетил сайт программно (например, curl) без установки заголовка реферера (searchbots!).
HTTP_REFERER-отправлено браузером, указав последнюю страницу, которую браузер просматривал!
Если Вы доверяете [HTTP_REFERER] по любой причине, которая важна, вы не должны, так как ее можно легко подделать:
- некоторые браузеры ограничивают доступ, чтобы не разрешить передачу HTTP_REFERER
- введите адрес в адресной строке не будет передавать HTTP_REFERER
- открыть новое окно браузера не будет передавать HTTP_REFERER, потому что HTTP_REFERER = NULL
- имеет некоторый браузер аддон, который блокирует его по соображениям конфиденциальности. Некоторые брандмауэры и 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 при использовании 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
где-то).