Upload chez free.fr

Soyez le premier à donner votre avis sur cette source.

Snippet vu 44 994 fois - Téléchargée 28 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 -
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
-
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 -
Bah instancie la :)
OneHacker
Messages postés
1466
Date d'inscription
jeudi 2 novembre 2000
Statut
Membre
Dernière intervention
23 septembre 2007
1 -
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
-
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 :(

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.