Salut à tous,

Je me suis basé sur un tuto du site dvp.com pour uploader des images sur mon serveur.

Cela semble bien fonctionner, mais je me demandais si je ne devais pas apporter plus de sécurité sur le contrôle du fichier.

Je vois qu'il est conseillé de contrôle le type MIME, mais je ne trouve pas beaucoup d'informations là dessus.

Spaffey avait posté un message à ce propos il y a quelques années :

http://www.developpez.net/forums/d46...e-mime-upload/

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
<?php
	$dossier = 'C:\wamp\upload/';
	$fichier = basename($_FILES['myfile']['name']);
	$taille_maxi = 1000000;
	$taille = filesize($_FILES['myfile']['tmp_name']);
	$extensions = array('.png', '.gif', '.jpg', '.jpeg');
	$extension = strrchr($_FILES['myfile']['name'], '.'); 
	//Début des vérifications de sécurité...
	if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
	{
		 $erreur = 'Only these file types are allowed : png, gif, jpg, jpeg';
	}
	if($taille>$taille_maxi)
	{
		 $erreur = 'The file is too big.  Maximum size : 1 Mo';
	}
	if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
	{
		 //On formate le nom du fichier ici...
		 $fichier = strtr($fichier, 
			  'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
			  'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
		 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
		 if(move_uploaded_file($_FILES['myfile']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
		 {
			  echo 'Successful operation !';
		 }
		 else //Sinon (la fonction renvoie FALSE).
		 {
			  echo 'Error !';
		 }
	}
	else
	{
		 echo $erreur;
	}
?>
Avez-vous des remarques par rapports à ce code ?

Pensez-vous qu'il est préférable d'ajouter des contrôles ? si oui, lesquels ?

Je vous en remercie d'avance.

beegees