Jawaban:
Ini tersedia di header HTTPreferer
. Anda bisa mendapatkannya di servlet sebagai berikut:
String referrer = request.getHeader("referer"); // Yes, with the legendary misspelling.
Namun, Anda perlu menyadari bahwa ini adalah nilai yang dikendalikan klien dan karenanya dapat dipalsukan untuk sesuatu yang sama sekali berbeda atau bahkan dihilangkan. Jadi, berapa pun nilainya, Anda tidak boleh menggunakannya untuk proses bisnis penting apa pun di backend, tetapi hanya untuk kontrol presentasi (misalnya menyembunyikan / menampilkan / mengubah bagian tata letak murni tertentu) dan / atau statistik.
Bagi yang berminat, latar belakang tentang kesalahan mengeja dapat ditemukan di Wikipedia .
null
.
Sebenarnya ini
:, request.getHeader("Referer")
atau bahkan lebih baik, dan untuk menjadi 100% yakin
request.getHeader(HttpHeaders.REFERER)
, di mana HttpHeaders beradacom.google.common.net.HttpHeaders
getHeader(String name)
(kutipan):"The header name is case insensitive."
org.apache.http.HttpHeaders
Seperti yang telah disebutkan semua
request.getHeader("referer");
Saya ingin menambahkan beberapa detail tentang aspek keamanan header referer berbeda dengan jawaban yang diterima. Dalam lembar cheat Proyek Keamanan Aplikasi Web Terbuka ( OWASP ), di bawah Lembar Penipuan Penipuan Permintaan Situs (CSRF) disebutkan tentang pentingnya header referensi .
Lebih penting lagi untuk pemeriksaan Same Origin yang direkomendasikan ini, sejumlah header permintaan HTTP tidak dapat ditetapkan oleh JavaScript karena mereka berada di daftar header 'terlarang'. Hanya browser itu sendiri yang dapat menetapkan nilai untuk header ini, membuatnya lebih dapat dipercaya karena bahkan kerentanan XSS tidak dapat digunakan untuk memodifikasinya.
Sumber Asal cek yang direkomendasikan di sini bergantung pada tiga dari header yang dilindungi ini: Origin, Referer, dan Host, menjadikannya pertahanan CSRF yang cukup kuat.
Anda dapat merujuk daftar tajuk Terlarang di sini . Agen pengguna (yaitu: browser) memiliki kontrol penuh atas tajuk ini, bukan pengguna.