Comment sécuriser un download de fichier ? - PHP - Programmation
Marsh Posté le 03-10-2005 à 08:30:37
Que tu fasses une liste des fichiers libres en telechargement , ou alors que tu les mettes tous dans la meme directory et qu'avant le dl tu controles que ca se trouve bien laba dedans
Marsh Posté le 03-10-2005 à 16:43:58
tu veux dire que je stocke tous les fichiers en libre téléchargement dans une bdd et que je fasse plutot :
http://monsite/dl.php?id=157
N'existerait il pas une methode pour "nettoyer" le path qui m'est envoyé ? (et si une telle methode existe vous auriez un exemple)
Merci
Marsh Posté le 03-10-2005 à 17:21:38
Il a pas parlé d'une base de donnée.
Si tu te fais une liste des fichiers autorisés, tu peux trés bien la faire dans un simple fichier texte.
Et si, comme il te propose, tu mets tous les fichiers téléchargeable dans un seul et même répertoire, alors il te suffit de ne pas autorisé le changement de répertoire (présence d'un "/" ) et tu complétes le liens en rajoutant (dans le script php) le chemin vers le fichier. mais cette méthode empéche de classer les fichiers.
Marsh Posté le 03-10-2005 à 17:52:45
Citation : |
Ah ? interressant ca si je peux me permettre
comment est il possible de réécrire "../../fichiersensible.php" en utilisant les caractere hexa ? Qqn pourrait le traduire en hexa pour voir ?
Marsh Posté le 03-10-2005 à 18:04:14
Code :
|
. semble etre le .
/ semble etre le /
et print(rawurlencode('../')); affiche ..%2F
Il doit surement y avoir d'autres moyens de camoufler les ../ pour qu'une simple expression reguliere soit ineficasse.
Est ce que quelqu'un a deja rencontré ce probleme et a trouvé une solution / une parade ?
Marsh Posté le 03-10-2005 à 18:10:25
Perso je check les extensions des fichiers téléchargés. Tu peux pas faire la même chose? Me dis pas que tu propose des fichiers PHP au téléchargement?
Marsh Posté le 03-10-2005 à 18:13:18
c'est bien là le probleme
j'ai bien un fichier de config ou l'utilisateur peut definir la liste des extensions authorisées mais... si pas malheur il authorise les fichiers php il encoure de gros risque ! et comme c'est destiné à des programmeurs ils sont succeptibles de s'echanger des codes sources entre eux donc des .php ... :s
Marsh Posté le 03-10-2005 à 18:39:27
Tient je viens de trouver quelquechose d'interessant :
http://fr.php.net/manual/fr/function.realpath.php
Code :
|
il doit y avoir moyen de faire quelquechose avec ça
Marsh Posté le 03-10-2005 à 19:22:26
Ca a l air pas mal mais c est trop hard pour moi . Comprend pas les "@"...
Mais bon courage.
Marsh Posté le 03-10-2005 à 20:23:28
@ = si message d'erreur ne pas afficher le message d'erreur et si message d'alerte, ne pas afficher l'alerte.
Marsh Posté le 02-10-2005 à 23:24:33
Bonjour,
Je tente de réaliser un compteur de téléchargement en php,
Mon probleme est desormais de sécuriser un peu tout ca !
Deja je fais a la fin de mon script un readfile('path/to/file'); ce qui m'a permis de mettre un .htacess Deny From All dans le repertoire où se trouve les fichiers. Ainsi les utilisateurs ne peuvent pas aller directement dans le repertoire.
Mais mon soucis est de nettoyer le path qui m'est envoyé pour éviter que mes utilisateurs download n'importe quel fichier sensible ?
Exemple :
http://monsite/dl.php?file=path/to/file
et je veux eviter les
http://monsite/dl.php?file=../../fichiersensible.php
Simplement vérifier la non presence des ../ est innéficasse je suppose ? Car les . ou les / peuvent s'écrire en hexadecimal ou autre...
Que me conseillez vous de faire ?
Merci d'avance
---------------
http://poemes.iceteapeche.com - http://www.simuland.net