JeuWeb - Crée ton jeu par navigateur
Securité sur upload d'image .... - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Securité sur upload d'image .... (/showthread.php?tid=303)



Securité sur upload d'image .... - lodgimage.com - 07-10-2006

Bonjour a tous

J'etais inscrit sur ce forum avant et je n'ai pas eu le temps de me reinscrire apres le changement de forum etc.

Je suis le créateur de lodgimage.com que certains connaissent peut etre et qui est (etait) un hebergeur d'images gratuit et qui commencait a bien grandir et malheureusement des "jaloux" on eu l'idee de me hacker...

De quel maniere ? he bien je ne sais pas trop mais ca consistait a mettre un code ou autre chose dans une image et ensuite l'uploader pour qu'un script s'installe sur le site et donc toutes les images ont été effacés de mon serveur ......

Donc je compte reouvrir le site totalement retapé et donc je viens ici demander de l'aide pour securiser un peu tout ca pour pas qu'un soucis de ce genre ne ce reproduise donc en gros une facon de securiser l'upload des images.

Voila merci a vous d'avoir lu ce message et de votre aide futur !


RE: Securité sur upload d'image .... - gtsoul - 08-10-2006

Je ne suis pas expert en failles.
Mais je pense que tu as du oublier de sécuriser un champ de saisie (et pour un site d'upload il doit y en avoir).

Je vois deux façons de procéder :
_ la faille classique : une personne a rentré du code (sql ou php) dans un input
exemple :
Code PHP :
<?php 
entrez votre nom
: <input type="text" name="nom" />
Code PHP :
<?php 
$nom
= $_POST['nom'];
$bd->exec("INSERT INTO personne (id, nom) VALUES ('',$nom)");
Le hacker rentrera la chaîne suivante :
Citation :'plop)"); $bd->exec("DROP TABLES *");'
cad une injection sql, il profite d'une connection à la bdd pour mettre un code dangereux (ici le drop *). dans cet exemple, j'utilise 2 requetes mais on peut n'en utiliser qu'une si elles sont de même nature.

_ jouer sur le type mime de l'image
au lieu de rentrer une image, il va rentrer l'adresse d'un script. Donc lorsque tu chargeras l'image, le script s'executera.

Pour contrer la première méthode : utiliser les fonctions htmlentities, stripslashes, addslashes sur tout tes champs input. Gérer les exceptions (try {...} catch{..} ) habilement pour interrompre le script à l'analyse des saisies si celles-ci sont incorrectes PUIS traitez ces saisies.

Pour la deuxième, vérifier tes types MIME. L'utilisateur doit rentrer une image et non pas un url.

A ne pas oublier aussi, donner les droits minimaux aux utilisateurs. Ne jamais donner un accès root à la bdd. (mysql_connect('root','pass' ...) mais créer un profil adapté cad qui ne dispose que des droits UPDATE/DELETE/INSERT sur certaines tables et qui ne peut en aucun utiliser DROP CREATE ou ALTER.

Voilà ce sont des règles de sécurité de base. Ensuite si tu utilise des modules très connus comme phpbb, il se peut que la faille provienne de celui-ci. Et loi statistique oblige, plus un produit est utilisé, plus nombreux sont les gens qui y chercheront des failles.

J'espère avoir répondu.


RE: Securité sur upload d'image .... - lodgimage.com - 08-10-2006

ok merci pour ta reponse je vais essayer tout ca !

Sinon non c'est moi qui ai tout codé


RE: Securité sur upload d'image .... - joshua - 09-10-2006

en plus de ca tu peux ajouter de la programmation objet avec php5 et rendre toutes tes fonctions d'insertion en base privées ^^
:harpe: