Upload chez free.fr

Contenu du snippet

Demandé par Eax sur le forum, voila l'upload chez free.

Superbe upload en php3 :-| donc [nomdefichier].php3 obligatoire, pourquoi faire simple ... lol

Le script vérifi divers choses avec des expressions réguliéres, il es assez basique pour la gestion des noms de fichier uploadé (à vous de le gérer en fonction de ce que vous voulez)

Veillez à toujours bien faire gaffe de tester le nom du fichier à uploader et d'assigner vous meme une extension prédéfinie au fichier une fois uploader sur le serveur.

Petite faille d'une upload mal faite :
Si vous pouvez uploader un fichier sans qu'il n'y ai aucun controle dessus, il est facile d'uploader un fichier copy.php qui contient <? copy(index.php,index.txt); ?>. Et hop tout le code d'index.php est visible ...

Source / Exemple :


--- formulaire

<form name="form1" method="post" action="upload.php3" enctype="multipart/form-data">
        <input name="fichier" type="file">
  <br>
  <input type="submit" name="Submit" value="Ajouter la photo" class="bouton">
</form>

Notez bien le enctype="multipart/form-data" cvar sans ça, ça ne marchera pas.

Tout le code de la page est fait sur un champs file qui s'appele fichier

---- Page upload.php3

<?
// si le nom du fichier est vide
if ($fichier_name == "")
{
    echo "fichier vide ...";
	exit;
}

// Vérifie si le fichier contient juste des lettres de A à Z en majuscule ou minuscule, des chiffres de 0 à 9, un "_", un "." ou un "-"
$masque = "^[_a-zA-Z0-9.-]+$";
if (!ereg($masque,$fichier_name))
{
	echo "Nom de fichier invalide ...";
	exit;
}

// Regarde si la fin du nom de fichier est gif ou jpeg
// A sauter si vous uploadez autre chose lol
if(!ereg(".gif$", $fichier_name) && !ereg(".jpg$", $fichier_name))
{
	echo "Format incorrect ...";
	exit;
}

// regarde si le poid est compris entre 5 et 50 Ko
$poid = filesize($fichier)/1024;	
if ($poid >= 50 || $poid <= 5 )
{
	echo "Taille du fichier incorrect ...";
}

// ici je met un truc bidon avec le nom et l'extension en dure
$repedest = "photo/";
$nomdest = "blabla.jpg";

if (file_exists($fichier))
{
	// ici on déplace le fichier ou on veut
	if (!@copy($fichier,$repedest$nomdest))
	{
		echo "Déplacement non éffectué ...";
		exit;
	}
	else
	{
		echo "Fichier ".$fichier_name." ajoutée";
		exit;
	}
}
else
{
	echo "Erreur d'upload ...";
	exit;
}
?>

Conclusion :


Attention, si la page d'upload est utilisé avec une session : Les sessions ne sont pas gérées de la meme façon en php4 ou php3, c'est d'ailleur une des raison pour laquel je quitte free en juillet, trop de contrainte ...

Si vous connaissez d'autre truc pour la sécurité, faites en part, ça interessera plein de monde ...

++
Bon coding :-D

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.