Jump to content
Sign in to follow this  
Didier_S

[PHP] Images distantes

Rate this topic

Recommended Posts

Bonsoir,

Je souhaite proposer à mes membres d'utiliser un avatar sur un serveur distant (comme le proposent la plupart des forums). J'aimerais ne pas avoir à stocker l'image sur mon serveur (bah oui, c'est pensé pour économiser de l'espace disque). Donc, un champ input destiné à l'URL, et le tour est joué.

Mais j'ai peur que certains utilisent ce champ pour faire apparaitre, sur leur fiche-membre, des scripts php, javascript et compagnie, en profitant par exemple d'un mime_magic.

La première solution qui me vient à l'esprit est de lire le fichier proposé, et de vérifier son MIME type. Oui, mais ça force le serveur ET le client à charger tous deux l'image.

Y'aurait-il, par exemple, un moyen de lire seulement les headers du fichier, pour vérifier son type sans avoir à charger des centaines d'octets ?

Share this post


Link to post
Share on other sites

Salut,

J'ai l'impression que je vais proposer quelques chose de bêtes :P mais bon .. je me lance :D

Pourquoi ne pas tester uniquement l'extention du fichier ? une premiere fois en javascript, si l'utilisateur l'accepte ça évite de soliciter le serveur, une seconde fois au cas où en php.

Tu peux aussi renommer le fichier de façon a ce que si l'utilisateur envoi un fichier php ou autre il n'en connaise pas le nom sur ton serveur, dans tout les cas le renommer te sera certainement nécéssaire pour éviter les doublons av_user_20052005.ext par exemple.

Share this post


Link to post
Share on other sites

Tu peux vérifier le type, mais peut etre que le programme en face renvoie tout de meme le bon type mime.

Quant à l'extension, c'est idem, elle n'est pas garante du format de l'image, ou plus exactement, tu peux très bien appeler .gif pour l'extérieur, un programme php executable à l'intérieur. Voir pour ceci l'url_rewriting.

Anonymus.

Share this post


Link to post
Share on other sites

Le problème est bien le risque que l'utilisateur se serve de cette possibilité pour éxécuter un fichier ?

Je n'ai pas tester, mais si on fait un <img src =" pouet.gif"> et qu'en fait pouet.gif soit à la base un "pouet.php" je ne crois pas qu'il s'executera.

Si on rajoute comme sécurité un truc de base qui consiste à metre toutes ses pages dans un tableau et de renvoyer vers un joli message si la page ne figure pas dans ce tableau, aucun script ne pourra être utilisé.

Si je me trompe dites le moi, car perso je me contente de ça :D donc si ce n'est pas bon, serait temps que je corrige :P

Share this post


Link to post
Share on other sites

Qu'on soit bien d'accord. Il peut executer des scripts, lors de l'appel de l'image 'fictive', mais il n'executera pas, de toute facon, des programmes sur ton serveur. Ca, c'est impossible.

De la meme manière, il ne pourra pas faire executer de programmes qui soient néfastes à l'utilisateur, ca n'est (presque) pas possible.

Si tu préfère, ca s'apparenterait à du hacking, un virus, etc.. Et ca dépasserait le cadre des simples images.

De toute facon, vaut mieux pour ce que tu dis que le membre aille chercher ses images chez l'hébergeur du 'membre' en question que chez toi.

(Imagines sinon le nombre de forums qui auraient du soucis à se faire... :( )

Pour sécuriser une image téléchargée, on pourrait imaginer un programme tel que celui de transformer l'image gif en image png. Les infos 'codées' contenues dans l'image .gif seraient alors... compressées, cryptées,etc.. je sais pas quoi, mais il n'en ressortirait plus le code originel. (a mon avis..)

Anonymus

Share this post


Link to post
Share on other sites

c'est vrai qu'en fait je vois pas trop ce qu'il pourrait faire exécuter vu que du php ne passerait pas chez le client...

faudrait que je calme ma paranoïa :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...