Page 1 sur 1

envoi de fichiers sécurisés

Posté : 13 mars 2009, 17:14
par peuTimporte
Bonjour,
Afin de sécuriser l'upload de fichiers vers mon serveur j'essaye de m'assurer qu'il n'y ait pas de code PHP dans le fichier en question en lisant chaque ligne du fichier uploadé avec fgets() et en recherchant la chaine <?php avec stristr(). Le probleme est que fgets evalue la ligne: <?php n'est donc pas retourné et échappe à ma vérification avec stristr().

Le fichier à le contenu suivant:
premiereligne
deuxiemeligne<?php echo "hacked"; ?>

Ce que je recupère avec fgets est:
premiereligne
deuxiemeligne

Existe-t-il une fonction quit lit un fichier sans interpréter la ligne?

merci
peuTimporte

Posté : 13 mars 2009, 17:24
par djblagues
Logiquement il n'interprète pas, il suffit de ne pas mettre l'url complet du fichier, juste l'emplacement sur le serveur, et normalement sa devrait aller!

Posté : 13 mars 2009, 18:47
par Ryle
fgets n'évalue ni n'exécute la ligne qu'il retourne (fort heureusement). Il se contente simplement de lire une ligne du fichier et de la retourner....

A mon avis ton problème est simplement lié à la façon dont tu contrôle le contenu retourné par fgets. En effet, si tu utilises simplement un echo pour afficher le résultat dans ton navigateur, tu auras bien le code source de la page "deuxiemeligne<?php echo "hacked"; ?> ", mais à l'écran le navigateur n'affichera que "deuxiemeligne", le reste de la chaine étant considéré comme une balise html qui n'est donc pas affichée ;)