Secara teori browser tidak meneruskan informasi referensi dari HTTPS ke situs HTTP. Dan dalam pengalaman saya ini selalu benar. Tapi saya baru saja menemukan pengecualian, dan saya ingin mengerti mengapa ini berhasil sehingga saya dapat menggunakannya juga.
Telusuri "apa rujukan saya" di https://www.google.ca/
misalnya: https://www.google.ca/search?q=what+is+my+referer
Ada beberapa situs yang akan menunjukkan referer. Mereka semua tampaknya "bekerja" padahal seharusnya tidak. Misalnya, klik satu www.whatismyreferer.com. Saya mendapat:
Your referer:
https://www.google.ca/
Perhatikan bahwa kadang-kadang, jarang, saya mendapat "no referer" sebagai hasilnya. Kembali dan klik lagi tautannya dan itu akan "bekerja" lain kali.
Ini seharusnya tidak terjadi. www.whatismyreferer.com adalah situs non-HTTPS. Header referer tidak boleh diteruskan, tapi itu benar.
Apa yang terjadi di sini, dan bagaimana saya bisa melakukan hal yang sama dari situs HTTPS saya ke situs HTTP yang saya tautkan?
sumber
Jawaban:
Sepertinya itu karena
<meta>
tajuk baru yang digunakan Google:Spesifikasi: https://w3c.github.io/webappsec-referrer-policy/
Saat ini hanya didukung sepenuhnya oleh beberapa peramban , jadi ini bukan solusi yang lengkap, tetapi pasti awal!
sumber
Ini adalah perilaku standar.
https://tools.ietf.org/html/rfc2616#s-15-15.3 kata
Klien TIDAK HARUS menyertakan bidang header Perujuk dalam permintaan HTTP (tidak aman) jika halaman referensi ditransfer dengan protokol aman.
jadi jika klien Anda melakukan itu, itu melanggar standar.
sekali lagi, Google ADALAH standar, dan mereka dapat melakukan apa pun yang mereka inginkan :-)
sumber
Tampaknya ini adalah sesuatu yang dilakukan javascript di halaman google. Saya tidak melihatnya di firefox dengan noscript diaktifkan dan berhenti melihatnya di Chrome di Windows jika saya menonaktifkan javascript. Saya tidak tahu secara spesifik karena saya belum menggali lebih dalam dari itu.
sumber
<meta>
Nama atribut Label memiliki aturan pengarah baru, Pengarah yang mengontrol konten HTTP Referer HTTP header yang dilampirkan pada setiap permintaan yang dikirim dari dokumen ini.Untuk informasi lebih lanjut, silakan cek di sini: Kebijakan Perujuk RFC
sumber
Itu karena ketika Anda mengklik tautan, Anda akan diarahkan dari https://www.google .... ke http://www.google ... maka Anda diarahkan ke www.whatismyreferer.com
Dan seperti yang Anda katakan, antara situs web http referer ditransmisikan.
Anda dapat memeriksanya dengan ekstensi Firefox
sumber