Type mime et insertion de code...

Résolu/Fermé
punishman - 21 août 2009 à 21:47
 punishman - 24 août 2009 à 23:33
Bonjour à tous!
Ceci est mon premier post.

Voila j'ai créé un petit site, avec un upload de photo possible sur les profils.
Apres upload de la photo, je l'enregistre en base de données etc. Un classique.

Ma question est simple:
Quelqu'un rentre dans un fichier .png du code, de type:

<?php
Header("Content-type: image/png");
// code malveillant...

et l'envoie sur mon serveur...
Quels sont les risques? Comment détourner ce problème, cette faille?

Pour info, lors de l'enregistrement en BDD, j'utilise mysql real escape string et strip tags, parfois addcslashes
Lors de l'affichage j'utilise strip slashes, strip tags
Merci d'avance aux futurs lecteurs de ce message!!!
A voir également:

7 réponses

mais si cette même image est inclue depuis une autre page web, danger???
Qu'entends-tu par incluse ? Si c'est par une balise HTML <img> ou <href>, le script ne sera pas exécuté. Si c'est par un include, il pourrait l'être mais il n'y a aucune raison qu'un de tes scripts fasse un include d'une image venant de l'extérieur...
1
hello c'est encore moi. J'ai trouvé une solution mais je ne sais passi elle est sûre:

Une fois l'image uploadée, getImageSize permet d'avoir certaines infos dont les dimensions.
Si les dimensions sont correctes il y a un resultat. pour un hack, le résultat semble être false.

$img= getImageSize("hack.png"); // image hack.png contenant du code et pas une image
//On peut alors tester l'image et agir en conséquence:
if($img[0] != null)
{echo "bonne image avec une dimension";}
else echo "image incorrect il semble que ce ne soit pas vraiment une image";

que pensez-vous de cette solution?
Une image peut-elle avoir des dimensions mais aussi du code malveillant?
Y-a t-il une solution plus fiable??
Merci beaucoup de vous intéresser à mon problème.
0
un petit up.

D'autant plus que j'ai lu que getImageSize pour tester la validité d'une image n'était pas une bonne méthode.
Merci
0
Bonjour

As-tu fait l'essai en local ? Chez moi, si le fichier n'a pas la bonne extension (php, php3 etc...) Il n'est pas interprété par le PHP, donc pas de code malveillant à craindre. Vérifie l'extension des fichiers uploadés, si ce n'est déjà fait.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ok donc le script ne serait pas executé..., meme appelé par un href de l'extérieur...
Merci pour ta réponse le père


Bon je laisse le sujet un peu ouvert et je clorai s'il n'y a pas d'autre proposition.
Quelqu'un aurait-il une solution pour supprimer l'image malveillante lors de l'upload par le visiteur...??
0
bon je ne vois plus le bouton clore le sujet, comme il n'inspire pas grand monde lol.
Je ne viendrai plus voir les réponses. peut être y aura t-il quelqu'un d'inspiré plus tard.
Merci "le père"
a bientot
0
Salut le père et déjà merci pour ta réponse ;-)

Et bien je vérifie le type mime, vérification passée avec le"Header("Content-type: image/png"); " (j'accepte png et jpg)
Depuis ma page, l'image rend une "croix rouge" classique d'erreur.
J'ai essayé par exemple d'ouvrir l'image depuis son adresse sur le serveur, le code PHP malicieux s'est simplement affiché. Il ne semble pas être executé...mais si cette même image est inclue depuis une autre page web, danger???

Pour info, j'utilise un RPS OVH.
S'il y a d'autres idées je suis preneur.
-1