Dengan pembangunan berterusan teknologi Internet, semakin banyak tapak web menggunakan PHP sebagai bahasa pembangunan bahagian belakang. Walau bagaimanapun, disebabkan oleh pengabaian pembangun terhadap langkah perlindungan keselamatan PHP, banyak tapak web mempunyai kelemahan muat naik fail, yang memberi peluang kepada penggodam untuk mengambil kesempatan daripadanya. Artikel ini akan memperkenalkan prinsip kelemahan muat naik fail PHP dan cara melaksanakan perlindungan keselamatan.
1. Prinsip kerentanan muat naik fail
Kerentanan muat naik fail merujuk kepada kaedah serangan di mana penggodam memuat naik fail berniat jahat untuk melaksanakan kod jahat pada pelayan sasaran. Kerentanan muat naik biasanya disebabkan oleh pembangun yang tidak menyemak dan menapis sepenuhnya fail yang dimuat naik oleh pengguna semasa mereka bentuk fungsi muat naik fail, membenarkan penggodam memasukkan kod hasad dalam fail yang dimuat naik.
Sebagai contoh, fungsi muat naik fail hanya mengehadkan jenis fail kepada imej, tetapi penggodam sengaja menukar sambungan fail semasa memuat naik untuk mencapai tujuan memuat naik fail boleh laku. Atau penggodam menggunakan senarai putih untuk menapis jenis fail yang dimuat naik, tetapi pakej dimampatkan mengandungi kod hasad semasa proses muat naik dan kod hasad dilaksanakan apabila dinyahmampat.
2. Larangan muat naik fail yang berbahaya
Untuk menangani kelemahan muat naik fail, kami boleh mengambil langkah berikut untuk perlindungan keselamatan.
Semasa proses muat naik fail, bukan sahaja sambungan fail tetapi juga jenis MIME kandungan fail mesti disemak. Adalah disyorkan untuk memanggil fungsi fiinfo_file PHP sebelum memuat naik untuk menentukan jenis fail melalui maklumat pengepala fail Jika ia adalah jenis yang tidak sah, muat naik akan ditolak.
Untuk nama fail yang dimuat naik oleh pengguna, adalah disyorkan untuk menggunakan ungkapan biasa untuk menapis dan mengalih keluar aksara haram dalam nama fail. Jika nama fail mengandungi kod hasad, ia boleh menyebabkan kod hasad dilaksanakan selepas fail dimuat naik, sekali gus menimbulkan risiko keselamatan kepada pelayan.
Menetapkan kebenaran direktori muat naik ialah langkah yang sangat kritikal. Adalah disyorkan untuk menetapkan direktori muat naik kepada baca sahaja dan menukar kebenaran kepada tulis sahaja selepas muat naik berjaya untuk mengelakkan kod berniat jahat dilaksanakan dalam direktori semasa muat naik dan menyebabkan kerosakan pada pelayan.
Pada masa ini terdapat banyak perpustakaan keselamatan yang tersedia, seperti PHP's Securimage, SecFilter, dsb. Pustaka ini boleh diperkenalkan semasa memuat naik fail.
Untuk sesetengah jenis fail tertentu, adalah disyorkan untuk mengkonfigurasi pelayan terus untuk melarang muat naik, seperti fail latar belakang PHP, fail Shell, dsb. Peraturan berikut boleh ditambah pada fail konfigurasi Apache:
Tolak pesanan, benarkan
Tolak daripada semua
Peraturan di atas akan melarang muat naik semua akhiran ".php, .php3, .php4, .phtml, . pl,. sh, .py" dan fail lain, dengan itu meningkatkan keselamatan pelayan.
Ringkasnya, kerentanan muat naik fail adalah kerentanan keselamatan yang sangat berbahaya Jika diserang oleh penggodam, ia akan menyebabkan kerugian besar kepada pelayan dan laman web. Oleh itu, kita mesti mengukuhkan perlindungan keselamatan PHP dan mengambil langkah untuk perlindungan keselamatan. Hanya dengan mempertimbangkan sepenuhnya keselamatan semasa proses reka bentuk kod boleh kestabilan dan kebolehpercayaan tapak web dapat dijamin.
Atas ialah kandungan terperinci Perlindungan keselamatan PHP: melarang muat naik fail berbahaya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!