Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencegah Akses Terus ke Fail yang Diakses melalui AJAX dalam PHP?

Bagaimana untuk Mencegah Akses Terus ke Fail yang Diakses melalui AJAX dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-12 00:36:03803semak imbas

How to Prevent Direct Access to Files Accessed via AJAX in PHP?

Menghalang Akses Terus kepada Fail yang Diakses melalui AJAX

Apabila mengakses fail PHP melalui permintaan AJAX, seperti "func.php", akses terus ke fail itu boleh menjadi kebimbangan keselamatan. Untuk menangani isu ini, adalah penting untuk melaksanakan mekanisme yang membezakan antara permintaan AJAX dan percubaan akses langsung.

Satu penyelesaian yang berkesan ialah memanfaatkan pembolehubah pelayan "HTTP_X_REQUESTED_WITH". Kebanyakan rangka kerja AJAX menetapkan pengepala ini kepada "XMLHttpRequest", menyediakan cara untuk membezakan antara permintaan AJAX tulen dan akses penyemak imbas langsung. Semakan pengepala ini boleh dilaksanakan dalam fail PHP seperti berikut:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access...
} else {
    // Ignore or deny access...
}

Dengan melaksanakan semakan ini, anda boleh memastikan bahawa hanya permintaan AJAX yang sah boleh mengakses fail yang ditentukan, melindunginya daripada akses langsung yang tidak dibenarkan.

Selain itu, untuk keselamatan yang dipertingkatkan, anda boleh menetapkan pengepala "X-Requested-With" secara manual dalam permintaan AJAX anda menggunakan mengikuti kod JavaScript:

var xhrobj = new XMLHttpRequest();
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");

Langkah ini mengukuhkan lagi perlindungan terhadap akses fail terus.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Akses Terus ke Fail yang Diakses melalui AJAX dalam PHP?. 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