Malgré l'utilisation d'une approche courante pour valider les types de fichiers image, certains utilisateurs ont rencontré des erreurs lors du processus de téléchargement.
L'extrait de code fourni utilise la propriété $_FILES['fupload']['type'] fournie par l'utilisateur, qui est susceptible d'être manipulée par des logiciels malveillants. utilisateurs. Pour résoudre cette vulnérabilité, il a été suggéré que l'utilisation de mime_content_type() améliorerait la précision.
Cependant, la solution recommandée consiste à éviter de s'appuyer entièrement sur des valeurs définies par l'utilisateur. Au lieu de cela, il est conseillé d'effectuer votre propre vérification de type.
Pour les images, la fonction exif_imagetype() offre une méthode fiable pour déterminer le véritable format du fichier :
$allowedTypes = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $detectedType = exif_imagetype($_FILES['fupload']['tmp_name']); $error = !in_array($detectedType, $allowedTypes);
Cette approche vérifie le directement la signature binaire de l'image, éliminant ainsi la possibilité pour les utilisateurs de manipuler le type de fichier.
Alternativement, pour une vérification plus avancée du type de fichier, envisagez d'utiliser les fonctions finfo si votre le serveur les prend en charge.
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!