Dalam proses pembangunan web harian, kami sering menggunakan program PHP sebagai bahasa skrip sebelah pelayan untuk mengendalikan permintaan pengguna. Walau bagaimanapun, isu keselamatan yang datang bersamanya tidak boleh diabaikan. Salah satu isu keselamatan yang lebih biasa ialah pelayan PHP melarang muat turun fail Dalam kes ini, apabila pengguna cuba memuat turun fail sensitif tertentu pada pelayan, pelayan menafikan permintaan tersebut.
Muat turun fail ialah ciri yang sangat biasa untuk aplikasi web. Contohnya, pada sesetengah tapak web, pengguna mungkin perlu memuat turun fail PDF, audio, video, perisian dan kandungan lain. Walau bagaimanapun, dalam beberapa kes, menjadikan semua fail tersedia untuk dimuat turun mungkin menimbulkan risiko keselamatan. Contohnya, jika pengguna yang tidak dibenarkan memuat turun hamparan atau fail kod yang sensitif, kebocoran maklumat ini akan menimbulkan ancaman serius kepada kepentingan syarikat. Oleh itu, untuk memastikan keselamatan sistem, pembangun selalunya perlu melarang fail tertentu daripada dimuat turun.
Muat turun fail daripada pelayan PHP dilaksanakan melalui protokol HTTP. Apabila pengguna memasukkan URL dan meminta fail pada pelayan, pelayan memajukan permintaan itu kepada program PHP, yang kemudiannya membaca fail dan menghantarnya kepada pengguna. Oleh itu, jika kami ingin menghalang pengguna daripada memuat turun fail tertentu, kami boleh melakukannya dengan menetapkan pengepala respons HTTP. Khususnya, kami boleh menambah kod berikut pada kod PHP untuk melarang muat turun fail:
header('Content-Type: text/plain;'); header('Content-Disposition: attachment; filename=forbidden.txt'); readfile('/path/to/forbidden/file');
Dalam kod di atas, header('Content-Type: text/plain;')
digunakan untuk menetapkan pengepala respons HTTP untuk menunjukkan jenis kandungan respons ialah teks biasa. header('Content-Disposition: attachment; filename=forbidden.txt')
memberitahu penyemak imbas bahawa fail itu perlu dimuat turun dan bukannya dibuka dalam penyemak imbas. Baris terakhir kod readfile('/path/to/forbidden/file')
digunakan untuk membaca kandungan fail yang ditentukan dan menghantarnya kepada pengguna.
Jika anda tidak mahu pengguna memuat turun fail, anda boleh menetapkan Jenis Kandungan dalam pengepala kepada jenis bukan muat turun. Sebagai contoh:
header('Content-Type: application/pdf;'); readfile('/path/to/pdf/file');
Akhir sekali, perlu diingat bahawa walaupun kaedah di atas boleh melarang muat turun fail pada tahap tertentu, langkah kawalan yang lebih ketat perlu diambil untuk jenis fail khas seperti fail boleh laku. Pada masa yang sama, dalam pembangunan sebenar, jika tidak dikendalikan dengan betul, mungkin terdapat isu keselamatan seperti penyerang memintas sekatan memuat turun dan memuat turun fail sensitif. Oleh itu, pembangun perlu merawat fungsi muat turun fail dengan lebih berhati-hati dan melaksanakan perlindungan keselamatan yang komprehensif.
Atas ialah kandungan terperinci Bagaimana untuk melarang muat turun fail dalam pelayan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!