Dalam hal apa HTTP_REFERER akan kosong

163

Saya tahu mungkin untuk mendapatkan HTTP_REFERER kosong. Dalam keadaan apa hal ini terjadi? Jika saya mendapatkan yang kosong, apakah itu selalu berarti bahwa pengguna mengubahnya? Apakah mendapatkan yang kosong sama dengan mendapatkan yang kosong? dan dalam kondisi apa saya juga mendapatkan itu?

sebaya
sumber
8
Ketika klien tidak mengirim satu.
Ignacio Vazquez-Abrams

Jawaban:

276

Itu akan / mungkin kosong saat enduser

  • memasukkan URL situs di bilah alamat browser itu sendiri.
  • mengunjungi situs oleh bookmark yang dikelola browser.
  • mengunjungi situs tersebut sebagai halaman pertama di jendela / tab.
  • mengklik tautan di aplikasi eksternal.
  • beralih dari URL https ke URL http.
  • beralih dari URL https ke URL https yang berbeda.
  • telah menginstal perangkat lunak keamanan (antivirus / firewall / dll) yang menghapus perujuk dari semua permintaan.
  • ada di belakang proxy yang menghapus pengarah dari semua permintaan.
  • mengunjungi situs secara terprogram (seperti, ikal ) tanpa mengatur header pengarah (searchbots!).
BalusC
sumber
32
Anda mungkin ingin menambahkan "ketika pengguna transisi dari halaman yang aman (HTTPS) ke halaman yang tidak aman".
John Pick
4
"mengunjungi situs sebagai halaman pertama di jendela / tab." Bahkan jika itu dengan mengklik pada tautan dan membukanya di jendela / tab baru ?? Apakah kamu yakin Itu akan menjadi perilaku yang sangat salah dari browser
matteo
Lihat juga di sini stackoverflow.com/questions/21922143/... untuk
pengecualian dalam
4
+ msgstr "beralih dari URL https ke URL https lain". Apa kau yakin tentang ini? : \
Oscar Mederos
5
Secara default, beralih dari URL HTTPS ke URL HTTPS yang berbeda tidak menetapkan referensi lengkap. Namun kebijakan default ini dapat diganti. w3.org/TR/referrer-policy
Dhaval Kapil
34

HTTP_REFERER - dikirim oleh browser, menyatakan halaman terakhir yang dilihat browser!

Jika Anda mempercayai [HTTP_REFERER] untuk alasan apa pun yang penting, Anda tidak boleh, karena itu bisa dipalsukan dengan mudah:

  1. Beberapa browser membatasi akses untuk tidak mengizinkan HTTP_REFERER diteruskan
  2. Ketikkan alamat di bilah alamat tidak akan melewati HTTP_REFERER
  3. membuka jendela browser baru tidak akan melewatkan HTTP_REFERER, karena HTTP_REFERER = NULL
  4. memiliki beberapa addon browser yang memblokirnya karena alasan privasi. Beberapa firewall dan AV dapat melakukannya.

Coba ekstensi firefox ini, Anda dapat mengatur setiap header yang Anda inginkan:

@Master of Celebration:

Firefox:

ekstensi: refspoof , refontrol , modifikasi header , no-referer

Nonaktifkan sepenuhnya: opsi ini tersedia di about: config di bawah "network.http.sendRefererHeader" dan Anda ingin mengatur ini ke 0 untuk menonaktifkan lewat referensi.

Google chrome / Chromium:

ekstensi: noref , spoofy , noreferrer eksternal

Nonaktifkan sepenuhnya : Chnage ~ / .config / google-chrome / Default / Preferences atau ~ / .config / chromium / Default / Preferences dan atur ini:

{
   ...
   "enable_referrers": false,
   ...
}

Atau cukup tambahkan --no-referer ke pintasan atau di cli:

google-chrome --no-referrers

Opera:

Nonaktifkan sepenuhnya: Pengaturan> Preferensi> Tingkat Lanjut> Jaringan, dan hapus centang "Kirim informasi pengarah"

Layanan web spoofing:

http://referer.us/

Proxy pemfilteran mandiri (spoof sembarang header):

Privoksi

Spoofing http_referer saat menggunakan wget

'--referer = url'

Spoofing http_referer saat menggunakan curl

-e, --referer

Spoofing http_referer dengan telnet

telnet www.yoursite.com 80 (press return)
GET /index.html HTTP/1.0 (press return)
Referer: http://www.hah-hah.com (press return)
(press return again)
Orang itu
sumber
Tamper Data adalah ekstensi Firefox lain yang patut dilihat jika Anda ingin bermain dengan mengubah nilai pengarah.
Chris Hepner
Saya berusaha sangat keras untuk mengingat namanya. tapi ingatanku mengkhianatiku. Terima kasih :)
ThatGuy
@nix Some browsers limit access to not allow HTTP_REFERER to be passedBisakah Anda menyebutkan contoh untuk browser dan / atau ekstensi tersebut?
Master of Celebration
@MasterofCelebration menambahkan cara untuk menipu http_referer menjadi jawaban saya.
ThatGuy
Jangan gunakan referer.us untuk menipu / menyembunyikan referer Anda! Itu tidak berfungsi dan membocorkan informasi Anda. Satu-satunya layanan yang berfungsi saat ini adalah layanan rujukan sembunyikan gratis ini .
Brian Smith
9

Daftar BalusC solid. Salah satu cara tambahan bidang ini sering muncul kosong adalah ketika pengguna berada di belakang server proxy. Ini mirip dengan berada di belakang firewall tetapi sedikit berbeda jadi saya ingin menyebutkannya demi kelengkapan.

Burung hantu malam
sumber
8

Ini juga akan kosong jika draft standar Kebijakan Referrer baru digunakan untuk mencegah bahwa header referer dikirim ke asal permintaan. Contoh:

<meta name="referrer" content="none">

Meskipun Chrome dan Firefox telah menerapkan versi konsep Kebijakan Referrer, Anda harus berhati-hati karena itu misalnya Chrome mengharapkan no-referrerbukan none(dan saya telah melihat juga di neversuatu tempat).

Joel Richard
sumber
tabel kompatibilitas browser: developer.mozilla.org/en-US/docs/Web/HTTP/Headers/…
djvg
0

Saya telah menemukan implementasi pengarah peramban menjadi sangat tidak konsisten.

Misalnya, elemen jangkar dengan atribut "unduhan" berfungsi seperti yang diharapkan di Safari dan mengirimkan referer, tetapi di Chrome referer akan kosong atau "-" di log server web.

<a href="http://foo.com/foo" download="bar">click to download</a>

Rusak di Chrome - tidak ada referer yang dikirim.

jmoz
sumber