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 :

Vérifier une extension


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut Vérifier une extension
    Bonjour,

    Je cherche un moyen de vérifier une extension d'un fichier, pour n'autoriser que l'envoi de fichiers pdf, png ou jpg.

    Pour cela je connais la méthode de "l'étude du nom de fichier", en regardant les 3 derniers caractères du nom de fichier, on peut obtenir l'extension. Mais, une personne mal intentionnée pourrait modifier cette extension, pour envoyer un fichier .exe en le faisant passer pour un .jpg par exemple.

    Ce risque est-il un risque réel pour mon site ? pour mes visiteurs ?

    Si oui, y a t il moyen de vérifier une extension de fichier en analysant le fichier, en étudiant son en-tête par exemple ? Cette méthode doit pouvoir être efficace à 100% mais je ne sais pas réellement la mettre en place. Le risque se situe plutôt au niveau des performances, ce test étant plus long qu'une étude d'un nom de fichier.

    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Non, c'est une bonne méthode.
    Fais des tests de changement d'extensions et regarde si tu arrive à executer un exe renommer en jpg.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 264
    Points : 141
    Points
    141
    Par défaut
    Les pb de sécurité peuvent se poser de différentes manières mais si le fichier téléchargé est renommé par exemple « test.php/0.gif » il faut donc vérifier à l'aide des expressions régulières que le nom du fichier ne comporte pas de caractères spéciaux (slash/backslash)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $exts = array('.jpg','.gif','.png');
    $filename = $_FILES['fichier']['name'];
    # test les caractères spéciaux
    if (preg_match('#[\x00-\x1F\x7F\x9F/\\\\]#',$filename))
      echo "comporte des caractères spéciaux";
    $ext = strrchr($filename,'.');
    if (!in_array($ext,$exts))
    echo "format non accepté ==> jpg/gif ou png";

  4. #4
    Membre émérite

    Homme Profil pro
    Expert PHP
    Inscrit en
    Novembre 2004
    Messages
    2 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Expert PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 127
    Points : 2 557
    Points
    2 557
    Par défaut
    Le mieux étant de renommer soit même les fichiers uploader, genre fichier_0001.jpg et de garder une correspondance entre le nom d'origine et le nom renommé.

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Ok donc selon vous, il suffit de faire ces tests lors de l'upload d'un fichier :
    - Tester l'extension
    - Si png / jpg / pdf
    -> Renommer le fichier et l'envoyer sur le serveur
    - Sinon
    -> Extension invalide

    Ainsi je limite les risques ?

    Merci

  6. #6
    Membre éclairé Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Points : 779
    Points
    779
    Par défaut
    Hello,

    Personnellement c'est ce que je fais...
    Je verifie si il s'agit d'un jpg, gif ou png.
    Je renomme le fichier mais je lui donne la meme extension...

    @+
    cadou

  7. #7
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Points : 10
    Points
    10
    Par défaut
    Ok, je vais utiliser cette méthode. Merci

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

Discussions similaires

  1. Regex en bash pour vérifier une extension
    Par Aeren dans le forum Linux
    Réponses: 4
    Dernier message: 03/05/2011, 22h36
  2. Réponses: 9
    Dernier message: 15/05/2009, 17h33
  3. Vérifier si une extension est disponible
    Par Amnesiak dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2007, 14h02
  4. Vérifier une url, altenatives à fsockopen
    Par gendo dans le forum Langage
    Réponses: 4
    Dernier message: 14/09/2004, 21h35
  5. [windows]associer une extension à un exécutable ..
    Par peppena dans le forum Windows
    Réponses: 2
    Dernier message: 01/06/2004, 18h25

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