Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencegah Capaian Terus kepada Fail yang Diakses melalui AJAX?

Bagaimana untuk Mencegah Capaian Terus kepada Fail yang Diakses melalui AJAX?

DDD
DDDasal
2024-11-18 00:19:02900semak imbas

How to Prevent Direct Access to Files Accessed via AJAX?

Cara Mencegah Capaian Terus ke Fail Diakses melalui AJAX

Apabila membina permintaan AJAX, adalah penting untuk memastikan keselamatan data sedang dipindahkan. Jika kaedah permintaan ialah GET, data boleh dilihat dengan mudah dengan memeriksa pengepala permintaan. Walaupun penyelesaian yang disediakan dalam soalan pendua yang disebutkan nampaknya tidak menyelesaikan isu ini, terdapat pendekatan alternatif yang boleh menghalang akses terus ke fail sasaran dengan berkesan.

Penyelesaian:

Untuk memberikan akses kepada permintaan AJAX secara terpilih sambil menafikan akses terus kepada fail, anda boleh memanfaatkan pembolehubah pelayan HTTP_X_REQUESTED_WITH. Pembolehubah ini ditetapkan kepada XMLHttpRequest oleh kebanyakan rangka kerja dan perpustakaan AJAX. Menggunakan pembolehubah ini, anda boleh melaksanakan semakan berikut dalam fail PHP (cth., func.php):

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access since this is an AJAX request
} else {
    // Deny access since this is a direct request
}

Menyepadukan Pengepala:

Untuk memastikan bahawa permintaan AJAX anda termasuk pengepala X-Requested-With, tambah baris berikut pada kod JavaScript anda sebelum menghantar permintaan:

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

Keberkesanan:

Dengan melaksanakan penyelesaian ini, anda dengan berkesan menyekat akses terus ke fail sasaran sambil membenarkan permintaan AJAX daripada sumber yang dibenarkan. Ini membantu mengelakkan kemungkinan penyalahgunaan data atau pelanggaran keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Capaian Terus kepada Fail yang Diakses melalui AJAX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn