Если я перехожу по обычной ссылке с http://google.com на http://example.com, обычно заголовок http referrer, который мой браузер отправляет на example.com, относится к google.com. Всегда ли значение этого заголовка совпадает со значением document.referrer на странице example.com?
Соответствует ли document.referrer заголовку реферера HTTP?
Ответы (1)
Реферер, отправленный клиентом в заголовке запроса, совпадает с document.referrer
доступным в JavaScript. Однако нельзя полагаться на то, что информация о реферере всегда будет доступна.
Клиент должен отправить информацию. Вы можете отключить его, например, в настройках браузера.
В Firefox: https://www.technipages.com/firefox-enable-disable-referrer
или вы можете отключить его с расширением.
В Chrome: https://chrome.google.com/webstore/detail/referer-control/hnkcfpcejkafcihlgbojoidoihckciin?hl=en
Также легко подделать / отправить любого реферера, которого вы хотите. Например, с помощью cURL:
curl --referer http://whatever.com/bot.html http://www.example.com/
РЕДАКТИРОВАТЬ: Вы также можете отключить отправку реферера на странице, чтобы при нажатии на ссылки или вызовах ajax, сделанных с этой страницы, заголовок реферера не отправлялся. Просто добавьте этот тег на страницу.
<meta name="referrer" content="no-referrer" />
Подробнее здесь: https://stackoverflow.com/a/32014225/5601169
document.referrer
— это представление заголовка реферера, отправленного клиентом. Если вы можете отключить заголовок, константа JS также должна быть пустой.
- person lofihelsinki; 01.03.2018
document.referer
получает свое значение из заголовка, я не знаю, откуда еще он мог бы получить его?
- person lofihelsinki; 19.01.2021