Apa cara yang paling andal dan aman untuk menentukan halaman mana yang dikirim, atau disebut (melalui AJAX), halaman saat ini. Saya tidak ingin menggunakan $_SERVER['HTTP_REFERER']
, karena (kurangnya) keandalan, dan saya ingin laman dipanggil hanya berasal dari permintaan yang berasal dari situs saya.
Sunting: Saya ingin memverifikasi bahwa skrip yang membentuk serangkaian tindakan dipanggil dari laman di situs web saya.
php
http-referer
UnkwnTech
sumber
sumber
$_SERVER[REMOTE_ADDR]
.Jawaban:
REFERER dikirim oleh browser klien sebagai bagian dari protokol HTTP, dan karena itu memang tidak dapat diandalkan. Mungkin tidak ada, mungkin dipalsukan, Anda tidak bisa mempercayainya jika itu untuk alasan keamanan.
Jika Anda ingin memverifikasi apakah permintaan datang dari situs Anda, Anda tidak bisa, tetapi Anda dapat memverifikasi bahwa pengguna telah ke situs Anda dan / atau diautentikasi. Cookie dikirim dalam permintaan AJAX sehingga Anda dapat mengandalkannya.
sumber
Yang paling saya temukan adalah token CSRF dan menyimpannya di sesi untuk tautan di mana Anda perlu memverifikasi perujuk.
Jadi jika Anda membuat panggilan balik FB maka akan terlihat seperti ini:
Kemudian index.php akan terlihat seperti ini:
Saya tahu situs aman yang melakukan hal yang sama untuk semua halaman aman mereka.
sumber
$_GET['token'] == $_SESSION['token']
dan tidak$_GET['token'] !== $_SESSION['token']
?Menggunakan $ _SERVER ['HTTP_REFERER']
sumber
Tidak ada cara yang dapat diandalkan untuk memeriksa ini. Ini benar-benar di bawah tangan klien untuk memberi tahu Anda dari mana asalnya. Anda dapat membayangkan untuk menggunakan cookie atau informasi sesi yang hanya ditempatkan di beberapa halaman situs web Anda, tetapi melakukannya akan merusak pengalaman pengguna dengan bookmark.
sumber
Kami hanya memiliki satu pilihan tersisa setelah membaca semua masalah pengarah palsu: yaitu halaman yang ingin kita lacak sebagai pengarah harus disimpan dalam sesi, dan sebagai panggilan ajax kemudian memeriksa sesi jika memiliki nilai halaman pengarah dan melakukan tindakan lainnya tidak bijaksana tindakan.
Sementara di sisi lain saat dia meminta halaman yang berbeda maka buat nilai sesi perujuk menjadi null.
Ingat bahwa variabel sesi disetel hanya pada permintaan halaman keinginan.
sumber