Sur le site web de PHP, la seule vérification réelle qu'ils suggèrent est d'utiliser is_uploaded_file()
ou move_uploaded_file()
, ici . Bien sûr, vous ne souhaitez généralement pas que les utilisateurs téléchargent n'importe quel type de fichier, pour diverses raisons.
Pour cette raison, j'ai souvent utilisé une vérification "stricte" des types de mime. Bien sûr, cette méthode est très imparfaite, car les types de fichiers sont souvent erronés et les utilisateurs ne peuvent pas télécharger leur fichier. Il est également très facile de les falsifier et/ou de les modifier. En outre, chaque navigateur et système d'exploitation les traite différemment.
Une autre méthode consiste à vérifier l'extension, qui est bien sûr encore plus facile à modifier que le type mime.
Si vous ne voulez que des images, utilisez quelque chose comme getimagesize()
fonctionnera.
Qu'en est-il des autres types de fichiers ? Des PDF, des documents Word ou des fichiers Excel ? Ou même des fichiers texte uniquement ?
Edit : Si vous n'avez pas mime_content_type ou Fileinfo et system("file -bi $uploadedfile") vous donne le mauvais type de fichier, quelles sont les autres options ?
0 votes
El
getimagesize()
indique clairement que vous ne devez pas utiliser cette fonction pour valider si une image est une image.Do not use getimagesize() to check that a given file is a valid image. Use a purpose-built solution such as the Fileinfo extension instead.
php.net/manual/fr/function.getimagesize.php