FORCER LE TÉLÉCHARGEMENT D'UN FICHIER SIMPLEMENT

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 - 5 janv. 2008 à 12:41
tsioryarivony Messages postés 1 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 13 janvier 2012 - 13 janv. 2012 à 19:34
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/45311-forcer-le-telechargement-d-un-fichier-simplement

tsioryarivony Messages postés 1 Date d'inscription mardi 8 mars 2011 Statut Membre Dernière intervention 13 janvier 2012
13 janv. 2012 à 19:34
mon souci c'est ke,le fichier dont je veut telecharger est ke je ne connait pas son nom carps je les ai renomé.comment faire pour les telechargers?
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
9 mai 2009 à 23:30
saadi2009 je n'ai pas très bien compris ta question.

Tu veux dire comment ne pas montrer le "fichier.gif" (comme dans ton exemple) ?
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
9 mai 2009 à 23:29
Merci pous vos commentaires (qui datent lol).

A l'époque j'étais un noob de PHP, maintenant je maitrise mais je suis pas un encore un professionel.
saadi2009 Messages postés 1 Date d'inscription mardi 6 janvier 2009 Statut Membre Dernière intervention 1 mai 2009
1 mai 2009 à 19:45
Merci bien pour le code, il est simple et fiable;
comment je cache le paramètre d'envoie parle href?
puisque les propriété de téléchargement afiche l'instruction complete
comme suite:
http://www.exemple.com/dossier/download.php?variable=fichier.gif
hztm82 Messages postés 2 Date d'inscription jeudi 9 décembre 2004 Statut Membre Dernière intervention 14 février 2008
14 févr. 2008 à 16:14
Plutôt que d'exclure certains type de fichier, il serait plus prudent de n'autoriser que certains. (zip, jpg...) et effectivement, avec un répertoire en dur on est tranquille.
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
9 janv. 2008 à 13:19
Et les nuages dans le ciel ...
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
8 janv. 2008 à 17:39
Sache une chose : la faille de sécurité se trouve entre le clavier et la chaise ^^
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
8 janv. 2008 à 17:28
Non, je ne suis pas naïf, tu ne me connais pas donc ...

Cela dit c'est vrai que y'a que dans les films ricains (mais non je suis pas raciste ! XD) où les serveurs et tout ça sont ultra sécurisés mdr.

Mais il existe quand même des programmes très puissants pour sécuriser des serveurs, comme le pare feu Phénix (qui supprimerait toutes les donneés d'un ou de disque(s) dur(s) si une intrusion importante serait détectée).
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
7 janv. 2008 à 19:42
>> De nos jours les serveurs sont sécurisés ...

Ah bon tu crois ? tu es bien naïf dis donc ^^ Il n'y a que dans les films américains que les serveurs sont ultra sécurisés lol
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 janv. 2008 à 17:01
En récupérant les fichiers de logs, on peut imaginer qu'il pourra récupérer des infos sensibles. Imagine un peu que CodeS-SourceS soit codé en PHP, que ta page soit disponible sur le server.
En récupérant les logs, on pourrait y voir des choses du style "L'utilisateur toto/mdptoto s'est connecté". => Et pan ! des infos personnelles récupérées.
Tu pourrais y trouver l'IP de la personne qui s'est connectée, tout ce qu'elle a fait sur le site, retrouver son email ...

Et là, le server a beau être sécurisé, tu récupères les infos que tu as trouvées, et tu te loggues avec. Ca va passer.

Donc les logs ne doivent JAMAIS pouvoir être téléchargeables. Dès qu'un service possède une base de donnée pour ses clients, tu trouves inévitablement des infos personnelles qui trainent dans les logs.
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
7 janv. 2008 à 16:47
J'oublais quels type d'informations dit un "hacker", pourrait récupérer ?

De nos jours les serveurs sont sécurisés ...
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
7 janv. 2008 à 16:45
Encore faudrait-il connaître le nom de ces fichiers et sur quel type de serveur (LINUX dans 75% des cas) est hébergé le site ...

Et si tu peux bien fais-le XD
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
7 janv. 2008 à 14:48
>> A ma connaissance les extensions .ini ou .log ne sont pas des extensions de PHP, uniquement celles-ci :

Oui ce ne sont pas pas des extensions de PHP et alors ? Avec ton système, je peux récupérer les fichiers de configs du serveur. Ces fichiers regorgent d'informations utiles pour un hacker...
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
7 janv. 2008 à 12:17
A ma connaissance les extensions .ini ou .log ne sont pas des extensions de PHP, uniquement celles-ci :
.php[3|4|5]
.inc
.phtml

Bien sur on peut créer ses extensions personnalisées si on est l'administrateur du serveur Apache.
sean1305 Messages postés 8 Date d'inscription vendredi 29 septembre 2006 Statut Membre Dernière intervention 9 mai 2009
5 janv. 2008 à 19:25
Lol j'ai oublié de mettre les extensions .phpX.

Bref sinon quand j'ai dit "simplement" ben c'est simplement.
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
5 janv. 2008 à 12:41
Ton code est super dangereux... Tu as tenté de restreindre le téléchargement de certains fichiers (.php, .inc...) mais si mes fichiers porte les extensions suivantes :

* .php4, .php5, .php3
* .ini
* .log
* ...

Bref je pourrais quand même accéder à des fichiers tous aussi sensibles que les fichiers php de ton appli.

En plus ton code me permet d'aller récupérer des fichiers qui se trouvent en dehors de la racine web. Il suffit pour moi d'essayer de deviner ce qu'il se passe au dessus de ton répertoire www pour aller y récupérer des fichiers de configuration de PHP ou MySQL par exemple.

Sache également que ta façon de récupérer une extension est loin d'être efficace puisqu'elle dépend de la taille de l'extension (que tu as fixé à 4 caractères). PHP propose la fonction native pathinfo() qui te permet de récupérer l'extension sans te soucier de sa longueur.

Il faudrait également que tu vérifies que dans le nom du fichier php passé dans l'url, qu'il n'y ait pas les caractères ".." qui te permettent de remonter d'un niveau.

Enfin, dans ce genre de script, il est bon de forcer le téléchargement de fichiers qui se trouvent uniquement dans un répertoire donné. En forçant en dur par exemple un répertoire nommé "downloads_publics", on s'assure que le script ira chercher uniquement dans ce répertoire si le fichier existe. Dans le cas contraire, on ne pourras pas télécharger un fichier qui se trouve en dehors de ce répertoire.

++
Rejoignez-nous