l’Afrique du Sud avec Frederic, Limiter l’upload a un certain type de fichier
Language PHP
Voici un article pour integrer un minimum de securite lors de l’upload de fichier.
Ici nous souhaitons limite l’upload a un certain type de fichier.
Nous n’autoriserons que les fichiers de type image.
Garder en tete que cela reste un simple exemple. De plus d’autres elements doivent etre ajoutes.
Pour illustrer cet article, je fais l’impasse sur le forumlaire en html.
Je vais m’attacher au traitement, une fois le forumlaire envoye.
Afin de limiter le type fichier aux images, nous allons nous baser sur le mime type du fichier.
Se baser uniquement sur l’extension est une erreur courante.
De plus l’extension du fichier peut etre facilement modifiable.
// Pour faciliter le filtrage du fichier, nous utilisons un tableau contenant la liste des mime type autorises
$aMimeTypeAutorise = array(’image/gif’, ‘image/jpeg’, ‘image/png’);// on verifie que l’input file ‘fichier’ est present
// et qu’il n’y ai pas d’erreur
if ( isset($_FILE[’fichier’][’tmp_name’]) && $_FILE[’fichier’][’error’]==0)
{
// Verification du type de fichier
// pour cela, nous utilisons la fonction mime_content_type
if (in_array(mime_content_type($_FILE[’fichier’][’tmp_name’]), $aMimeTypeAutorise))
{
// A partir de ce point le fichier est correctement uploade et le type de fichier est verifie.
// A partir d’ici, il reste a ajouter le traitement courant.
}
// Le mime type du fichier n’est pas autorise
else
{
// Traitement d’erreur
}
}
// Le cas echeant, on intercepte l’erreur
else
{
// traitement des erreurs
}
Pourquoi ne pas utiliser le mime type retourne dans le tableau $_FILES
La valeur dans ce tableau ne reflete pas le veritable mime type.
D’apres des tests sur differentes plateformes et certaines versions de PHP, cette valeur reflete l’extension du fichier.
Or je l’ai evoque plus haut, il n’est pas correct de ce fier a l’extension.
Articles Recents
Derniers Commentaires