Teoretycznie przeglądarki nie przekazują informacji o stronie odsyłającej z HTTPS do stron HTTP. Z mojego doświadczenia wynika, że zawsze tak było. Ale właśnie znalazłem wyjątek i chcę zrozumieć, dlaczego to działa, więc mogę go również użyć.
Wyszukaj „what is my referer” na https://www.google.ca/
np .: https://www.google.ca/search?q=what+is+my+referer
Istnieje kilka witryn, które wyświetlają odsyłacz. Wszyscy wydają się „pracować”, kiedy nie powinni. Na przykład kliknij stronę www.whatismyreferer.com. Dostaję:
Your referer:
https://www.google.ca/
Zauważ, że czasami rzadko otrzymuję „brak referencji”. Wróć i kliknij ponownie link, a następnym razem „zadziała”.
To nie powinno się zdarzyć. www.whatismyreferer.com jest witryną inną niż HTTPS. Nagłówek strony odsyłającej nie powinien być przekazywany, ale tak jest.
Co się tutaj dzieje i jak mogę zrobić to samo z mojej witryny HTTPS i stron HTTP, do których prowadzę link?
źródło
Odpowiedzi:
Wygląda na to, że wynika to z nowego
<meta>
nagłówka, którego używa Google:Specyfikacja: https://w3c.github.io/webappsec-referrer-policy/
Obecnie jest w pełni obsługiwany tylko przez kilka przeglądarek , więc nie jest to kompletne rozwiązanie, ale na pewno początek!
źródło
To jest standardowe zachowanie.
https://tools.ietf.org/html/rfc2616#section-15.1.3 mówi
Klienci NIE POWINNI zawierać pola nagłówka odsyłacza w (niezabezpieczonym) żądaniu HTTP, jeśli strona odsyłająca została przesłana za pomocą bezpiecznego protokołu.
więc jeśli twój klient to robi, narusza to standard.
potem Google jest standardem i mogą robić, co chcą :-)
źródło
Wygląda na to, że robi to javascript na stronie Google. Nie widzę tego w Firefoksie z włączonym noscript i przestanę go widzieć w Chrome w systemie Windows, jeśli wyłączę javascript. Nie wiem co konkretnie, bo nie kopałem głębiej.
źródło
<meta>
Nazwa atrybutu etykiety ma nowe reguły stron odsyłających, strona odsyłająca kontrolująca zawartość nagłówka HTTP odsyłacza HTTP dołączonego do każdego żądania wysłanego z tego dokumentu.Aby uzyskać więcej informacji, sprawdź tutaj: Zasady polecające RFC
źródło
Dzieje się tak dlatego, że po kliknięciu linku następuje przekierowanie z https://www.google .... do http://www.google ... następnie następuje przekierowanie do www.whatismyreferer.com
I tak jak powiedziałeś, między stronami http przekazywany jest odnośnik.
Możesz to sprawdzić za pomocą rozszerzenia Firefox
źródło