Upload chez free.fr

5/5 (91 avis)

Snippet vu 45 312 fois - Téléchargée 29 fois

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

Ajouter un commentaire Commentaires
cs_Tortuegeniale Messages postés 1123 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 juin 2008 1
15 oct. 2007 à 10:46
Bah même réponse :)
tooffy123 Messages postés 55 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 16 mars 2009
14 oct. 2007 à 19:08
Salut !

j'ai le meme pb que onehacker...
cs_Tortuegeniale Messages postés 1123 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 26 juin 2008 1
16 juin 2007 à 19:18
Bah instancie la :)
OneHacker Messages postés 1447 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 23 septembre 2007 2
16 juin 2007 à 10:52
Non ca ne marche pas car ca m'affiche une erreur comme quoi $fichier_name est null et n'existe pas.

J'ai re regarfé le code et en effet nulle part la variable est instanciée.
cs_lca94 Messages postés 46 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 28 janvier 2006
16 juin 2007 à 10:46
sisi ça marche

mettre le point à l'endroit indiqué ci-dessus (cherchez un peu ...c au niveau du copy)
=> exemple flagrant sur http://skateboard.site.free.fr/my_upload.php3
>> allez voir votre image sur http://skateboard.site.free.fr/photos

comme vous le voyez c'est en .php3 et ça renomme comme dans le script premier
j'ai mis ma jolies Eddie Brickel mais surement kk'un va l'effacer :(
Afficher les 91 commentaires

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.