UPLOADER DE FICHIER PHP - AVEC GESTION DES FICHIERS
X_Cli
Messages postés44Date d'inscriptiondimanche 12 mars 2006StatutMembreDernière intervention 2 mars 2013
-
8 oct. 2010 à 13:50
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 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.
Peut-on augmenter la taille de l'upload?? Apparement limitée à 1 Mo.
Merci
lanhororo
Messages postés4Date d'inscriptionvendredi 20 mars 2009StatutMembreDernière intervention31 octobre 2010 25 oct. 2010 à 23:32
C'est un bon travail, félicitation.
X_Cli
Messages postés44Date d'inscriptiondimanche 12 mars 2006StatutMembreDerniè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és44Date d'inscriptiondimanche 12 mars 2006StatutMembreDerniè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és32Date d'inscriptionlundi 27 janvier 2003StatutMembreDernière intervention23 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és45Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention26 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és129Date d'inscriptionvendredi 17 mars 2006StatutMembreDernière intervention27 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és5Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention21 avril 2009 11 oct. 2010 à 08:03
En voilà deux qui n'iront pas en vacance ensemble.
(Thierry Roland)
fedebul
Messages postés129Date d'inscriptionvendredi 17 mars 2006StatutMembreDernière intervention27 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és44Date d'inscriptiondimanche 12 mars 2006StatutMembreDerniè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és25Date d'inscriptionmardi 24 octobre 2006StatutMembreDernière intervention12 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és44Date d'inscriptiondimanche 12 mars 2006StatutMembreDerniè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és25Date d'inscriptionmardi 24 octobre 2006StatutMembreDernière intervention12 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és44Date d'inscriptiondimanche 12 mars 2006StatutMembreDerniè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.
26 août 2014 à 12:15
Tu dois avoir quelque chose du genre:
26 août 2014 à 11:46
26 août 2014 à 09:39
Peut-on augmenter la taille de l'upload?? Apparement limitée à 1 Mo.
Merci
25 oct. 2010 à 23:32
11 oct. 2010 à 20:26
Utiliser le nom fourni dans $_FILES présente de très nombreux risques d'injection.
11 oct. 2010 à 20:16
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.
11 oct. 2010 à 17:13
X_Cli peux-tu partager avec nous un scrypt pour sécuriser ce code ?
Merci par avance.
11 oct. 2010 à 14:50
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 !
11 oct. 2010 à 09:46
11 oct. 2010 à 08:03
(Thierry Roland)
11 oct. 2010 à 08:01
Désolé ..
Merci beaucoup
laurent
9 oct. 2010 à 19:49
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.
9 oct. 2010 à 18:25
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 ...
9 oct. 2010 à 08:51
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.
9 oct. 2010 à 02:07
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 ^^
8 oct. 2010 à 13:50
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.