Memintas Akses Terus kepada Fail Dipanggil AJAX
Dalam aplikasi dipacu AJAX, mengambil data daripada skrip PHP sebelah pelayan memerlukan pertimbangan yang teliti untuk keselamatan. Apabila menggunakan skrip melalui permintaan GET, kandungan dan parameternya kelihatan kepada sesiapa sahaja yang memeriksa pengepala HTTP.
Mencegah Akses Fail Terus
Untuk menghalang pengguna yang tidak dibenarkan daripada mengakses fail PHP secara terus , kami boleh memanfaatkan pengepala HTTP_X_REQUESTED_WITH yang dihantar oleh permintaan AJAX. Pengepala ini menunjukkan bahawa permintaan itu berasal daripada XMLHttpRequest, membolehkan kami membezakannya daripada percubaan akses langsung.
Pelaksanaan
Dalam skrip PHP anda, tambahkan blok kod berikut sebelum sebarang operasi sensitif:
if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) { // Allow access to AJAX requests } else { // Block direct file access and display an error message header("HTTP/1.0 403 Forbidden"); echo "Direct access not permitted."; }
Pengepala Permintaan AJAX
Kod JavaScript anda hendaklah memasukkan baris berikut untuk menambah pengepala X-Requested-With pada permintaan AJAX:
var xhrobj = new XMLHttpRequest(); xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
Ini memastikan pelayan menerima pengepala dan mengenal pasti permintaan dengan betul sebagai panggilan AJAX. Dengan melaksanakan langkah-langkah ini, anda boleh menghalang akses fail terus ke skrip PHP yang dipanggil oleh fungsi AJAX dengan berkesan, sambil mengekalkan kebolehaksesan untuk permintaan AJAX yang sah.
Atas ialah kandungan terperinci Bagaimana untuk Mencegah Akses Terus kepada Fail PHP yang Dipanggil AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!