Installation d'un upload sécuriser (premiere créa)

Soyez le premier à donner votre avis sur cette source.

Vue 10 022 fois - Téléchargée 1 743 fois

Description

Ce code une install d'un upload securisé
Choix pendant l'installation de divers fonctions comme le nom du site, la banniere hauteur et largeur (si existante), et suppression des fichiers d'install (un pti plus)
(ne fonctionne pas sous free a cause du compteur de fichier sur le ftp [ftp_connect()])

Conclusion :


J'ai piocher un peu partout pour les fonctions n'esitez pas à critiquer la source (sans vulgariser la chose et sans "sa sert a rien ta source " expliquez pourquoi avant ... Merci)
Donc l'upload aura bientôt d'autre fonctions (apres noël et oui vais faire du shopping en femme ^^ )
Y aura upload d'un php avec un htaccess pour securiser puis htm pareil le meme fonctionnemant avec un htaccess.
Aussi choix pour les utilisateurs de site free pour desactiver l'option de comptage des fichiers sur le ftp

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
9
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Bonjour,

Donc je vous tiens informé :
ça ne fonctionne pas.
J'arrive pourtant jusqu'à la page "ok" (qui est vide, surment dû aux lignes que tu m'as dit d'effacer), mais quand je vais dans mon repertoire sur le ftp, le fichier (450ko)n'est pas là !
C'est le même résultat avec à peu près tous les sources de upload.
J'en conclus que c online.net qui bloque.
Si vous avez des idées, je suis preneur !
A+
Michael
Messages postés
9
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Merci pour les réponses.

Je suis chez online.net.(pas gratuit, pas très cher non plus !)
J'ai un compte 500Mo
Ca commence à faire pas mal de temps que je cherche une solution pour uploader des fichiers sur mon ftp sans passer par un logiciel. J'ai essayé tout un tas de sources mais sans succès.
J'ai l'impression qu'en étant chez online je ne vais pas pouvoir.
Je vais donc essayé de supprimer les lignes comme tu me le propose Odric88.(je te tiens informé du résultat)
Michaël
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

Salut... .. .

@ Mich93... c'est normal l'extension ftp ne doit pas être installée sur ton serveur... .. .

Alors sinon... pas mal de chose à dire... .. .

Tout d'abord tu code avec register_globals activé ce qui est une catastrophe au niveau instanciation des variables... ça provoque des bon trous de sécurité et ne marche pas sur la moitié des serveurs (notament le mien en local)... il faut utiliser la super globale $_FILES pour récupérer les fichier uploadés... .. !

Quand un fichier est uploadé cette dernière se présente comme suit...

Array
(
[nom_du_champ] => Array
(
[name] => monfichier.ext
[type] => image/jpg
[tmp_name] => chemin_complet_du_fichier_uploadé
[error] => 0
[size] => 1000
)

)

Le principe de l'install est sympa bien qu'un peu superflue mais tu aurais pu tout mettre dans un fichier parceque un fichier juste pour afficher un bouton avec voulez vous installer c'est quelque peu inutile... qui plus est tu génère un fichier config mais le login et le pass de connection ftp sont dans index.php... le fichier de config est la pour ça... .. .

Ensuite je vois pas en quoi ton upload est sécurisé... au contraire... aucune protection d'accès... n'importe qui peu uploader des fichiers... la seule protection c'est le htaccess pour afficher les fichiers php en plain/text mais c'est loin d'être suffisant... d'ailleur quand je vois sécurisé dans le titre ça me fait toujours douter... d'autant plus quand l'auteur dit qu'il débute... .. .

Tu utilise les fonctions ftp_*... bien que ça ne soit pas vraiment utile c'est un choix... mais à l'upload tu utilise les fonctions du gestionnaire de fichier... bref hormis pour lister le contenu du répertoire cible, ce que tu pourrais faire avec les fonction du gestionnaire de fichier, ta connection ftp ne sert strictement à rien si ce n'est griller des resources... d'ailleurs tu fais un opendir() sur le répertoire de destination mais tu n'utilise jamais le pointeur que tu as créé... .. .

Tu gère très mal les erreurs... quand tu les gères... pareil à l'install d'ailleur... si aucun fichier n'est uploadé c'est page noir... si move_uploaded_file() échoue le fichier sera quand même compté comme uploadé... la gestion des erreurs d'upload ne se fait pas comme ça... ta ligne...

<?php
if (is_uploaded_file($upfile))
{
echo "L'extension de votre fichier n'est pas autorisée par notre serveur";}
if ($upfile_size>$maxsize)
{
echo "Le fichier a une taille supérieure à la limite autorisée!"; }
?>

A la fin du fichier ne correspond à rien... le le fichier a bien été uploadé tu affiche une erreur... c'est d'ailleurs étonnant que tu n'ais pas de parse error car tu ne ferme pas les accolades... comme dit précédament les codes d'erreurs d'upload sont contenu dans la variable $_FILE... .. .

0 il n'y a eu aucune erreur
1 Le fichier dépasse la limite autorisée par le serveur (fichier php.ini)
2 Le fichier dépasse la limite autorisée dans le formulaire HTML
3 L'envoi du fichier a été interrompu pendant le transfert
4 Le fichier envoyé a une taille nulle

Cependant il est mieux de vérifier soit même la taille, le type de fichier et sont contenu car ceux ci sont facilement falsifiable... .. .

Pour l'upload d'image d'une part tu te limite à trois extensions... mais si je veux, par exemple, uploader des fichiers bitmap... et tu t'y prend mal...

if ($type=="$type1" || $type=="$type2" || $type=="$type3")

déja les doubles quotes sont inutiles...

if ($type==$type1 || $type==$type2 || $type==$type3)

et autant faire...

(dans conf)
$allowed_ext = array('gif','png','jpg','bmp',...

(dans upload)
if(in_array($allowed_ext,$type))
//c'est bon
else
// c'est pas bon

Ta méthode pour récupérer l'extension n'est pas des meilleurs... si j'upload une_image.jpeg ça ne passera pas...

function getFileExt($filename)
{
if(false ($pos strrpos($filename,'.'))
return '';

return strtolower(substr($filename,$pos+1));
}

ensuite tu fais

if(in_array($allowed_ext,getFileExt($_FILES['upfile']['name']))
//c'est bon
else
// c'est pas bon

Mais bon... controler le type de fichier par rapport à son extension n'est pas suffisant... c'est une faille de sécurité potentielle... il faut aussi penser aux attaques null byte dans les tentatives de dissimulation d'extension.. .

Sinon niveau syntaxe pas mal de petite erreur pas très grave mais les mauvaises habitude se prennent vite... .. .

<? echo "$nombre"; ?> => <? echo $nombre; ?>

if($type=="$type1" => if($type == $type1

$jour=$tmp["mday"]; => $jour = $tmp['mday'];

$tout="$mois$h$jour$s$jour$s$m"; => $tout = $mois.$h.$jour.$s.$jour.$s.$m;

echo "..."; => echo '...';

Voili voilou à première vu... .. .

@ tchaOo°
Messages postés
10
Date d'inscription
lundi 18 août 2003
Statut
Membre
Dernière intervention
19 décembre 2006

Si vous êtes chez free ou un hebergeur gratuit cela ne m'etonne pas.

Editez votre index.php et supprimer les lignes suivantes:

(ligne 4 à 15)

$ftp_server = "server-ou-ip";
$ftp_user_name = "login";
$ftp_user_pass = "password";
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$rep = "repertoire-racine";

$dossier = opendir( $rep );

$nbr_file = count(ftp_nlist($conn_id, $rep));

$nombre = $nbr_file;

Puis:

ligne 69 à 73
supprimer:






Il y <? echo "$nombre"; ?> fichiers sur le ftp




Voila vous n'aurez pas de compteur pour le moment attendez la prochaine version ;)
Messages postés
9
Date d'inscription
vendredi 30 juin 2006
Statut
Membre
Dernière intervention
20 décembre 2006

Merci pour votre réponse.

Maintenant j'ai un message d'erreur une fois l'installation terminée et quand je clique sur "allez à votre upload":
Fatal error: Call to undefined function: ftp_connect() in index.php on line 7

je débute, mais ais je vraiment besoin de l'indiquer ? ;)

Michael
Afficher les 10 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.