UPLOADER DE FICHIER PHP - AVEC GESTION DES FICHIERS

X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013 - 8 oct. 2010 à 13:50
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 26 août 2014 à 12:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52365-uploader-de-fichier-php-avec-gestion-des-fichiers

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
26 août 2014 à 12:15
Comme te le suggère NHenry... regarde ton php.ini
Tu dois avoir quelque chose du genre:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 2M
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
26 août 2014 à 11:46
Regardes dans ta configuration de PHP (côté serveur)
Bonjour,

Peut-on augmenter la taille de l'upload?? Apparement limitée à 1 Mo.
Merci
lanhororo Messages postés 4 Date d'inscription vendredi 20 mars 2009 Statut Membre Dernière intervention 31 octobre 2010
25 oct. 2010 à 23:32
C'est un bon travail, félicitation.
X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013
11 oct. 2010 à 20:26
Ah oui... et évidemment, il ne faut pas se baser sur le nom de fichier qui est donné dans $_FILES. Il faut renommer le fichier par un hash quelconque (et faire une détection de collision dans le doute) et stocker le nom officiel du fichier, dans la base de données.. vu qu'on en a une...
Utiliser le nom fourni dans $_FILES présente de très nombreux risques d'injection.
X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013
11 oct. 2010 à 20:16
@Digital1977
Bonsoir,
Non, je ne peux pas. Désolé. Je n'ai pas le temps de faire du libre en ce moment (j'ai mon cours de C à paufiner pour les étudiants de cette année, justement) et c'est un sujet complexe qui demande un travail important, et dont le temps travail est variable suivant ce que l'on veut obtenir. Pour dire à quel point il est complexe, même le développeur principal du framework symfony a fait des erreurs de conception (à mon avis) en implémentant le framework d'upload.
Je peux seulement donner le conseil de retirer le répertoire d'upload du docroot, de regarder du coté de X-Sendfile ou readfile, et de regarder de la documentation sur la sécurisation contre les SQL injections. Une bonne idée serait également de se baser sur le type mime des fichiers car les informations de $_FILES sont aisément falsifiables.
digital1977 Messages postés 32 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 23 juin 2009
11 oct. 2010 à 17:13
Super ! J'ai bien apprecié le code, bravo.
X_Cli peux-tu partager avec nous un scrypt pour sécuriser ce code ?
Merci par avance.
iguypouf Messages postés 45 Date d'inscription mercredi 27 octobre 2004 Statut Membre Dernière intervention 26 août 2009
11 oct. 2010 à 14:50
Ben non pas un défouloir...

Il a tout à fait raison de souligner qu'il ne faut pas toujours faire confiance en tout. Un type qui va faire son premier site php, va venir ici, internet-generation style, et hop inclut sa classe dans son projet.

Je ne vois pas en quoi il aurait tort de le souligner, pour remettre ça dans son contexte !
fedebul Messages postés 129 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 27 février 2012
11 oct. 2010 à 09:46
Ce n'est plus un forum participatif et social c'est un défouloir ! pas grave !
zeroug Messages postés 5 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 21 avril 2009
11 oct. 2010 à 08:03
En voilà deux qui n'iront pas en vacance ensemble.
(Thierry Roland)
fedebul Messages postés 129 Date d'inscription vendredi 17 mars 2006 Statut Membre Dernière intervention 27 février 2012
11 oct. 2010 à 08:01
bonjour, où trouver sur le site d'autres versions d'upload et gestion de fichiers ? Je ne trouve pas !
Désolé ..
Merci beaucoup

laurent
X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013
9 oct. 2010 à 19:49
Haha, je vais te faire peur : je suis prof :)
Je n'ai partagé qu'une seule source, mais elle est d'un niveau correct, elle, même si elle n'est pas parfaite, puisque je n'ai pas inclus le support du /31.
La différence, c'est que je ne partage que lorsque mon source a un intérêt. Probablement à méditer.
DiabloBros Messages postés 25 Date d'inscription mardi 24 octobre 2006 Statut Membre Dernière intervention 12 novembre 2010
9 oct. 2010 à 18:25
bien bien , ho gran Maître de la matrice , je m'excuse ^^

si tu étais prof , tu serais celui que les gamin ne veulent surtout pas avoir.

ce code a était volantairement simplifié et commenté pour qu'il soit compréhensible et lisible par un néophit, bien sur qu'il est attaquable, ce n'ai qu'un ensemble de fonction sans aucune protection...

deplus, j'adore les critiques de gars totalement élitiste qui n'à lui meme partagé qu'une pauvre source, jadore ...
X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013
9 oct. 2010 à 08:51
Il existe déjà des sources qui expliquent très bien l'upload. Il existe déjà des tutoriels qui expliquent les problèmes de sécurité qu'on peut rencontrer, et comment les sécuriser.
Avant de vouloir apprendre aux autres comment faire qqch, il faut apprendre soi même comment les faire, étape que vous avez visiblement omise.
Avec ce bout de code, on peut :
* obtenir directement le fichier sans incrémenter le compteur de clic
* obtenir un fichier et que tous les compteurs soient incrémentés
* obtenir le contenu de la base
* détruire le contenu de la base
* injecter n'importe quel bout de code, par exemple, pour envoyer du spam via ton hébergeur : c'est exactement comme laisser les droits FTP ouverts
* modifier le code source pour recevoir une copie de chaque fichier envoyé
* injecter du code afin d'obtenir un accès "ligne de commande" sur le serveur de l'hébergeur (pour peu que lui aussi ait permis des choses pas normales), et s'en servir comme point de rebond pour effectuer du hacking sur des serveurs réellement importants (et ca sera votre responsabilité qui sera engagée).

En matière de sécurité, il ne faut jamais croire que son code est inoffensif et que ce n'est pas grave s'il peut être attaqué, car souvent, on est qu'un maillon de la chaine d'une plus grosse attaque, dont on se rend involontairement complice.
C'est à cause de ce genre de source que le PHP a la réputation d'être un langage pour gamin : il est facile et toutes les personnes qui pensent savoir pisser deux lignes de code le font. Dans les autres langages, comme Java ou .net, il faut souvent étudier bien plus avant de pouvoir pisser sa première application intéressante. Et qui dit étudier plus, dit éviter des pièges aussi grossiers.
Bien entendu, ce texte n'est pas destiné à l'auteur de cette source qui semble borné, et incapable de se remettre en question.
DiabloBros Messages postés 25 Date d'inscription mardi 24 octobre 2006 Statut Membre Dernière intervention 12 novembre 2010
9 oct. 2010 à 02:07
ok d'accord , va dormir ^^ tu t'es pas dis que c'est juste un code explicative pour les petit lvl ?!? histoire de voir l'upload la gestion des fichier tous ca ? nan? bon ...

bien sur qu'il est attaquable , houha quel exploit ^^ chapeau ^^

et tu va attaquer quoi? et en faire quoi? DL la base et les fichier en boucle ? hoha ? dans quel but sournoie? faut arréter la parano ^^
X_Cli Messages postés 44 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 2 mars 2013
8 oct. 2010 à 13:50
Ce genre de script a déjà été codé maintes fois, et de bien meilleure façon. J'ai recensé au moins 3 failles de sécurité qui permettent de renverser la base, injecter du code, ou obtenir un shell.
Je ne suis pas allé plus loin.
L'auteur de cette source à besoin de se documenter sur les sql injections, et les bonnes pratiques d'upload de fichiers, et également sur les bonnes pratiques d'organisation d'un docroot.
Il devrait également retirer la version en ligne avant de se la faire hacker.
Rejoignez-nous