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

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

DDD
Libérer: 2024-11-30 19:05:12
original
409 Les gens l'ont consulté

How Can I Securely Verify Uploaded Image File Types in PHP?

Vérification du type de fichier de débogage en PHP

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.

Résoudre le problème

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal