Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengesahkan Jenis Fail yang Dimuat Naik dengan Selamat dalam PHP?

Bagaimanakah Saya Boleh Mengesahkan Jenis Fail yang Dimuat Naik dengan Selamat dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-01 22:43:11
asal
637 orang telah melayarinya

How Can I Securely Verify Uploaded File Types in PHP?

Mengesahkan Jenis Fail Yang Dimuat Naik dalam PHP

Apabila mengesahkan jenis fail yang dimuat naik dalam PHP, bergantung pada $_FILES['fupload']['type'] yang disediakan pengguna adalah berisiko kerana ia boleh dimanipulasi. Kaedah ini boleh menyebabkan ketidakkonsistenan dalam pengendalian ralat.

Untuk mengatasinya, pertimbangkan untuk menggunakan mime_content_type() untuk mendapatkan pengesanan jenis fail yang lebih dipercayai. Walau bagaimanapun, mime_content_type() juga bergantung pada input pengguna sedikit sebanyak.

Untuk pendekatan yang lebih mantap:

Menggunakan exif_imagetype():

$allowedTypes = [IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF];
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
Salin selepas log masuk

Kaedah ini mengkaji kandungan sebenar fail yang dimuat naik dan mengesahkan jenisnya berdasarkan fail tersebut tandatangan.

Memanfaatkan finfo():

Jika pelayan anda menyokong finfo(), ia menyediakan analisis fail yang lebih komprehensif. Contoh kod berikut menunjukkan penggunaannya:

$mimeTypes = ['image/png', 'image/jpeg', 'image/gif'];
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file($_FILES['fupload']['tmp_name']);
$error = !in_array($mimeType, $mimeTypes);
Salin selepas log masuk

Dengan melaksanakan salah satu daripada kaedah ini, anda boleh meningkatkan kebolehpercayaan jenis fail проверки anda dan meningkatkan ketekalan pengendalian ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Jenis Fail yang Dimuat Naik dengan Selamat dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan