Maison > développement back-end > tutoriel php > Comment puis-je vérifier en toute sécurité les types de fichiers téléchargés en PHP ?

Comment puis-je vérifier en toute sécurité les types de fichiers téléchargés en PHP ?

Mary-Kate Olsen
Libérer: 2024-12-01 22:43:11
original
639 Les gens l'ont consulté

How Can I Securely Verify Uploaded File Types in PHP?

Vérification des types de fichiers téléchargés en PHP

Lors de la validation des types de fichiers téléchargés en PHP, en s'appuyant sur le $_FILES['fupload']['type'] fourni par l'utilisateur est risqué car il peut être manipulé. Cette méthode peut entraîner des incohérences dans la gestion des erreurs.

Pour résoudre ce problème, envisagez d'utiliser mime_content_type() pour obtenir une détection de type de fichier plus fiable. Cependant, mime_content_type() dépend également dans une certaine mesure des entrées de l'utilisateur.

Pour une approche plus robuste :

Utilisation d'exif_imagetype() :

$allowedTypes = [IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF];
$detectedType = exif_imagetype($_FILES['fupload']['tmp_name']);
$error = !in_array($detectedType, $allowedTypes);
Copier après la connexion

Cette méthode examine le contenu réel du fichier téléchargé et vérifie son type en fonction de sa signature.

Exploiter finfo() :

Si votre serveur prend en charge fininfo(), il fournit une analyse de fichier plus complète. L'exemple de code suivant illustre son utilisation :

$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);
Copier après la connexion

En implémentant l'une ou l'autre de ces méthodes, vous pouvez améliorer la fiabilité de vos preuves de type de fichier et améliorer la cohérence de la gestion des erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal