У деяких випадках референт передається від HTTPS до HTTP ... Як?


17

Теоретично браузери не передають інформацію про реферати з 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-сайтів, на які я посилаюся?


1
Слід зазначити, що я використовую Chrome у Windows, якщо це має значення (наприклад: якщо інші люди бачать різні результати в різних браузерах / ОС)
ravisorg

Така поведінка вже не відповідає дійсності.
Flimm

@ravisorg, чи не слід це розміщувати на S / O?
Pacerier

Зараз Google повертає HTTPS-посилання, тому тест більше не діє :-(
Silas S. Brown

Відповіді:



4

Це стандартна поведінка.

https://tools.ietf.org/html/rfc2616#section-15.1.3 говорить

Клієнти НЕ повинні включати поле заголовка Referer у HTTP-запит (незахищений), якщо перенаправлена ​​сторінка була перенесена із захищеним протоколом.

тому якщо ваш клієнт робить це, він порушує стандарт.

потім знову google IS стандарт, і вони можуть робити все, що завгодно :-)


1
"Якщо" означає необов'язкове право?
Pacerier

так, я думаю, що так, необов'язково.
johnshen64

4
Оскільки це необов’язково, чому ви кажете, що це порушує стандарт?
Pacerier

1
На сьогодні 2616 застаріло. 7231 Розділ 5.5.2 говорить: "Агент користувача НЕ МОЖЕ надсилати поле заголовка Referer у незахищеному HTTP-запиті, якщо сторінка, на яку посилається, отримала захищений протокол." Він не вказує, що агенти повинні робити для захищених HTTP-запитів.
Пітер

1

Здається, це те, що робить JavaScript на сторінці google. Я не бачу його у firefox із включеним noscript і перестаю бачити його в Chrome у Windows, якщо я відключую JavaScript. Я не знаю, що конкретно, як я не копав глибше цього.


Ні, це не пов’язано з JavaScript (я подумав про це і перевірив це, перш ніж запитувати). Схоже, це новий тег <meta>, який переглядає Chrome.
ravisorg

Вимкнення javascript надійно не дозволяє рефереру працювати тут. Не знаю. Можливо, тут задіяно більше ніж одне.
Ітан Рейснер

Це дуже цікаво - я буду більше експериментувати з цим. Дякуємо за відгук!
ravisorg

0

<meta> Ім'я атрибута Label має нові правила перенаправлення. Referrer, що контролює вміст заголовка HTTP Referer HTTP, додається до будь-якого запиту, надісланого з цього документа.

Для отримання додаткової інформації перегляньте тут: Політика щодо направлення RFC


Це те саме, що вже прийнята відповідь ?!
DocRoot

-2

Це тому, що, коли ви натискаєте на посилання, ви перенаправляєтесь з https://www.google .... на http://www.google ... тоді ви перенаправляєтесь на www.whatismyreferer.com

І, як ви сказали, між веб-сайтом http передається референт.

Ви можете перевірити це за допомогою розширення Firefox


2
Ви здогадуєтесь, чи це ви базуєте на факти? Тому що я не бачу, що це відбувається з мого кінця. Клацання посилання пересилає вас до перенаправлення HTTPS на google.ca, а потім на кінцевий домен. Я ніколи не потрапляю на URL-адресу, яка не є https, поки я не дістанусь (наприклад) www.whatismyreferer.com. Також зверніть увагу, що референт спеціально повідомляє httpS://www.google.ca , а не http.
ravisorg

Так, ця відповідь видається невірною.
ceejayoz

Ось дамп заголовків http: pastebin.com/Y1HJyJ87 Я лише позбавив завантаження ресурсів (як, наприклад, google predlagaно та інші матеріали ajax) та файли cookie, пов’язані з файлами cookie. Але я мушу визнати, що коли я намагався кілька разів, Google поводився по-різному ... Іноді використовував лише https, тому не дозволяючи веб-сайту показувати мені мого референта. Просто спробуйте самі
користувач2299634
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.