Rumah > Artikel > pembangunan bahagian belakang > Perlindungan keselamatan PHP: elakkan serangan lintasan direktori
Dengan perkembangan teknologi Internet yang semakin meningkat, semakin banyak tapak web menggunakan PHP sebagai bahasa bahagian belakang, tetapi mereka juga menghadapi masalah keselamatan. Salah satu kaedah serangan yang lebih biasa ialah serangan traversal direktori Artikel ini akan memperkenalkan cara untuk mengelakkan serangan tersebut dan meningkatkan keselamatan aplikasi PHP.
Serangan traversal direktori bermaksud penyerang membina permintaan URL khas untuk menyebabkan pelayan mengembalikan fail atau direktori yang tidak sepatutnya diakses. Setelah serangan berjaya, penyerang akan mendapat akses kepada maklumat sensitif. Berikut ialah contoh serangan traversal direktori yang mudah:
Andaikan terdapat fungsi muat naik fail dalam tapak web dan pengguna boleh memuat naik imej avatar. Fail yang dimuat naik akan disimpan dalam direktori dengan laluan "/data/uploads/". Penyerang boleh mengeksploitasi kelemahan ini untuk mendapatkan sebarang fail pada pelayan dengan membina nama fail yang mengandungi "../".
Sebagai contoh, jika penyerang menetapkan nama fail kepada "../../config.php", sistem akan mengembalikan fail config.php. Fail ini mengandungi maklumat penting seperti nama pengguna dan kata laluan untuk pangkalan data MySQL Apabila dilampirkan pada fail yang dimuat naik, penyerang boleh mendapat akses kepada pangkalan data.
Untuk mengelakkan serangan traversal direktori, kami perlu menambah beberapa semakan keselamatan. Berikut ialah beberapa kaedah semakan keselamatan yang biasa:
1 Semak format dan jenis fail yang dimuat naik oleh pengguna
Untuk menghalang penyerang daripada memuat naik fail dengan nama fail berbahaya, kami boleh lulus. Sambungan dan jenis MIME disemak untuk mengelakkan jenis fail haram daripada dimuat naik.
Jangan percaya input pengguna ialah prinsip keselamatan paling asas dalam pembangunan. Kami perlu mengehadkan julat input pengguna dengan ketat, hanya membenarkan input dalam format dan kandungan yang kami harapkan, dan elakkan daripada memasukkan aksara atau pengecam khas.
3. Gunakan senarai putih untuk menyekat akses
Gunakan senarai putih untuk hanya membenarkan pengguna mengakses fail atau direktori yang dinyatakan dalam senarai putih. Ini menghalang penyerang daripada mengakses fail atau direktori yang tidak sepatutnya diakses dan meningkatkan keselamatan sistem.
4. Namakan semula fail yang dimuat naik oleh pengguna
Untuk mengelakkan penyerang menggunakan URL lintasan direktori yang dibina, adalah pilihan yang baik untuk menamakan semula fail yang dimuat naik oleh pengguna. Ini menghalang penyerang daripada menggunakan URL yang dibina untuk mengakses terus fail sensitif pada pelayan.
Ringkasnya, walaupun serangan traversal direktori agak biasa, beberapa langkah pencegahan boleh diambil untuk mengurangkan risiko keselamatan. Semasa pembangunan, pembangun perlu memberi perhatian kepada keselamatan dan mencegah kelemahan seperti rampasan parameter dan suntikan kod. Pada masa yang sama, gunakan versi terkini PHP dan pakai konfigurasi yang dioptimumkan keselamatan untuk meningkatkan keselamatan dalam persekitaran pengeluaran.
Atas ialah kandungan terperinci Perlindungan keselamatan PHP: elakkan serangan lintasan direktori. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!