Теоретически браузеры не передают информацию реферера с HTTPS на HTTP-сайты. И по моему опыту это всегда было правдой. Но я только что нашел исключение, и я хочу понять, почему это работает, поэтому я тоже могу его использовать.
Выполните поиск по запросу «что такое мой реферер» на странице https://www.google.ca/,
например: https://www.google.ca/search?q=what+is+my+referer.
Есть несколько сайтов, которые покажет реферер. Кажется, что все они «работают», когда не должны. Например, нажмите на www.whatismyreferer.com. Я получил:
Your referer:
https://www.google.ca/
Обратите внимание, что иногда, редко, я получаю "нет реферера" в результате. Вернитесь и нажмите на ссылку еще раз, и она будет «работать» в следующий раз.
Этого не должно быть. www.whatismyreferer.com - не HTTPS-сайт. Заголовок реферера не должен передаваться, но это так.
Что здесь происходит, и как я могу сделать то же самое с моего сайта HTTPS на сайты HTTP, на которые я ссылаюсь?
источник
Ответы:
Похоже, это связано с новым
<meta>
заголовком, который использует Google:Спецификация: https://w3c.github.io/webappsec-referrer-policy/
В настоящее время он полностью поддерживается только несколькими браузерами , так что это не полное решение, но, безусловно, начало!
источник
Это стандартное поведение.
https://tools.ietf.org/html/rfc2616#section-15.1.3 говорит
Клиенты НЕ ДОЛЖНЫ включать поле заголовка Referer в (незащищенный) HTTP-запрос, если ссылающаяся страница была передана по безопасному протоколу.
так что если ваш клиент делает это, он нарушает стандарт.
опять же, Google - это стандарт, и они могут делать все, что захотят :-)
источник
Похоже, что это то, что делает JavaScript на странице Google. Я не вижу его в firefox с включенным noscript и перестаю видеть его в Chrome на Windows, если я отключаю javascript. Я не знаю, что конкретно, потому что я не вырыл глубже этого.
источник
<meta>
Имя атрибута метки имеет новые правила реферера, который ссылается на содержимое HTTP-заголовка реферера HTTP, присоединенного к любому запросу, отправленному из этого документа.Для получения дополнительной информации, пожалуйста, проверьте здесь: RFC Политика реферера
источник
Это происходит потому, что когда вы нажимаете на ссылку, вы перенаправляетесь с https://www.google .... на http://www.google ..., а затем вы перенаправляетесь на www.whatismyreferer.com.
И, как вы сказали, между http-сайтом передается реферер.
Вы можете проверить это с расширением Firefox
источник