Fichiers Multi-extension

Eléphant du PHP | 441 Messages

15 avr. 2006, 15:17

Bonjour à tous,

je rencontre un léger soucis avec mon hébergeur au sujet d'une faille(?) potentielle concernant les fichiers multi-extensions. Par exemple : exemple.php.jpg

La plupart du temps lors d'upload de fichier on ne contrôle que la dernière extension. Dans mon exemple l'extension jpg sera prise en compte.
Mais sur certains hébergeurs, lorsque j'accède directement à ce fichier, le code PHP se trouvant à l'intérieur est exécuté alors qu'il s'agit à priori d'un fichier jpg mais il semble prendre en compte cette seconde extension.
Ce qui implique une exécution de code php hors contrôle donc faille potentielle (pour moi).
J'en ai parlé à mon hébergeur qui me dit:
Chacun son point de vu. Il faut savoir réflechir par logique !
exemple.php.jpg .. première balise = .php donc .php.
Il n'est par contre pas normal de pouvoir déposer ce type de fichier vis scripts d'upload.
Ce n'est pas mon opinion c'est un standard Apache/Linux. Si le client veut le modifier c'est son problème et il peut bidouiller depuis Cpanel.

J'aimerai avoir votre avis d'expert sur ce sujet s'il vous plait.
Merci d'avance.
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Mammouth du PHP | 19672 Messages

15 avr. 2006, 15:26

Question : dans la mesure où ton fichier est un fichier .jpg et non un script de génération d'image en PHP produisant un fichier jpg à la volée, à quoi te sert cette sous-extension ".php" :?:

Et si elle ne sert à rien de bien précis, pourquoi l'ajouter ? Au pire, remplace le premier point par autre chose et nomme par exemple ton fichier image_php.jpg : là, tu n'auras aucun soucis.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 avr. 2006, 16:12

je pense que le souci est plustôt d'éviter qu'une autre personne uploade un fichier contenant cette double extension.

Si tu veux vraiment tester les extensions potentielles du fichier effectue un simple explod() sur le point (.) sur le fichier avant upload et vérifi que le résultat ne comporte pas de "php"ou une expression régulière.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 441 Messages

16 avr. 2006, 23:15

Disons que je souhaitais plutot savoir si ce comportement du serveur est normal pour vous? si cela est un standard apache? Car selon les hébergeurs, la double extension peut etre prise en compte ou non.
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

17 avr. 2006, 01:26

C'est comme ça que fonctionne Apache depuis que je le connais. Pour le reste... :?:

Si tu penses être vulnérable à cette faille, désactive l'exécution des scripts PHP dans le dossier de stockage avec un .htaccess:

Code : Tout sélectionner

SetHandler core RemoveType .php
Edit: d'après le manuel d'Apache httpd, en cas de conflits c'est l'extension de droite qui prévaut donc exemple.php.jpg ne devrait pas être considéré comme un script PHP