IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] upload d'images sécurisé [Fait]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 16
    Points
    16
    Par défaut [Upload] upload d'images sécurisé
    Bonjour a tous,

    comme l'indique le nom de mon post, je cherche à créer un module d'upload sur mon site et j'aimerais que ceci se fasse de façon sécurisée. J'ai fouillé un peu sur internet et l'upload d'image peu engendré énormément de faille de sécurité. Pour l'instant, voici les techniques que j'utilise pour sécurisé cela :
    - Je filtre le nom de l'image (htmlentities) et verifie que l'extension est bien jpg, bmp, png ou jpeg.
    - Je vérifie la taille max de l'image et le poid max de l'image
    - je vérifie l'entête ($_file['fichier']['type'])
    - je renomme avec un nom aléatoire MAIS avec la même extension
    - Je stock le nom aléatoire dans une base de donnée
    - Je télécharge l'image dans un répertoire qui est en dehors de la racine
    - lorsque quelqu'un désire voir l'image, la page download.php va effectuer un readfile de l'image et modifier les en-tête de la page html pour forcer le téléchargement.

    Normalement, les précautions permettent de ne pas interpréter l'image quelconques comme du php mais seulement, j'aimerais savoir s'il est dangereux de renommer l'image avec la même extension que le fichier ? une image reconnue comme valide (avec une longueur et une largeur) peut-elle contenir un virus ou un backdoor ou quelques chose d'autre (je ne suis pas spécialiste dans toute les technique de hack utilisé...) ?
    merci de vos réponses.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Mes connaissance sont peut etre limitée, mais, un serveur web réagit en fonction de l'extension , or si il voit du .jg ou autre, il ne fait que prendre le contenu et le renvoyer, donc a priori pas d'embètement.

    Pour en etre sur, va voir le code source de cms genre joomla ou phpbb.

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Tu peux tester le type MIME d'un fichier, en particulier savoir si il s'agit bien d'une image et peu importe l'extension :

    Ainsi, il suffira de tester si le nom de fichier ne comporte pas de ".php" (avec strpos par exemple) et de tester le type du fichier pour s'assurer qu'il s'agit bien d'une image.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Bonjour,
    tout d'abord, je tien à vous remercier pour vos réponses.
    En fait, pour ce qui est du type MIME de l'image, j'effectue déjà des tests mais je pense que cela est facilement contournable pour un hacker ; il lui suffit de changer l'en-tête content type manuellement lors de l'envoi de l'image (je ne suis pas sur de moi mais je pense bien avoir lut cela quelques part lol). En fait, ce que je voudrais savoir, c'est s'il est possible qu'un virus soit contenu dans une image bmp par exemple et que le fichier représente une menace avec l'extension bmp et non exe...
    merci encore pour votre soutient.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Sub0 : le mime type n'est pas lié (dans le cas de serveru web) a l'extension ? par exemple sous IIS (je sais pas sou apache), il y a une admin pour relier une extension a un mimetype ....

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Au pire, il suffirait de vérifier le type mime en testant le chargement de l'image avec les fonctions imagecreatefrom.... avec un switch. Je crois que c'est comme ça que j'ai procédé pour mon script d'upload d'avatar; Je teste l'extension, le type mime et le chargement (éventuellement ensuite, les dimensions). De toutes façons, je recadre et redimensionne l'avatar, alors ça ne peut fonctionner qu'avec une vraie image...

    Citation Envoyé par Bourgui Voir le message
    Sub0 : le mime type n'est pas lié (dans le cas de serveru web) a l'extension ? par exemple sous IIS (je sais pas sou apache), il y a une admin pour relier une extension a un mimetype ....
    Je ne sais pas, désolé.

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai retrouvé; Je l'avais fait pour cette démo PHP & Javascript :
    http://sub0.developpez.com/php/edit_ima/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 14/03/2007, 23h16
  2. [Upload] Upload FTP avec image > 1Mo
    Par Invité dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2007, 14h09
  3. [Upload] upload d'une image
    Par emna_icn dans le forum Langage
    Réponses: 11
    Dernier message: 05/05/2006, 00h14
  4. [Upload] Upload d'une image
    Par Seth77 dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2006, 12h00
  5. [Upload] upload de fichier images
    Par omlip dans le forum Langage
    Réponses: 2
    Dernier message: 04/01/2006, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo