Type mime et insertion de code...

Résolu
punishman -  
 punishman -
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

le père
 
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
punishman
 
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
punishman
 
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
le père
 
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
punishman
 
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
punishman
 
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
punishman
 
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