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 :

[Système] Téléchargement par HTTP d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut [Système] Téléchargement par HTTP d'un fichier
    Hello,

    Je souhaiterai savoir s'il existe des fonctions en php pour connaitre l'extension des fichier, tout comme cela est possible avec les images ?

    Autre point :

    Je sais que grâce à cela: $_FILES['userfile']['type'] on peut connaître le type de fichier...mais dans la doc. il ne parle que de celui-ci: image/gif

    Comment avoir / connaître la liste des possibilités ?

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    regarde la doc il y a une fonction pour avoir toute les informations concernant le fichier sous forme de tableau. Il existe aussi une fonction pour avoir le type mime d'un fichier.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  3. #3
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    humm..

    C'est justement LA fonction que je recherche...
    J'ai regardé dans la doc. en vain, d'où ma présence ici

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Pour certains types de fichiers (.doc, .exe, .zip) tu as leurs caractériques dans $_FILES['type'].
    C'est quoi tes types de fichiers?
    Et sinon, tu veux vraiment leur application ou juste trouver l'extension ça t'irait?

  5. #5
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Par sécurité mieux vaut ne pas tenir compte de $_FILES['type']... .. .

    pour récupérer l'extension tu peux faire...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ext = substr($filename,strrpos($filename,'.'));
    @ tchaOo°

  6. #6
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Attention, il y a certain qui place deux points au fichier. Exemple connu. monfichier.class.php
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  7. #7
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    Citation Envoyé par berceker united
    Attention, il y a certain qui place deux points au fichier. Exemple connu. monfichier.class.php
    c'est surement pour ca que la fonction proposée est strrpos et non strpos ce qui permet d'effectuer la recherche du caracère à partir de la droite
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Justement je trouve que l'extension ne veut rien dire: on peux très bien créer un fichier texte et le renommer en avi. (Bon je suis d'accord c'est con...)

  9. #9
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Anduriel
    Justement je trouve que l'extension ne veut rien dire: on peux très bien créer un fichier texte et le renommer en avi. (Bon je suis d'accord c'est con...)
    Cela rejoint ce que je souhaite savoir..

    Est-ce que faire le test sur le nom du fichier est suffisant ?
    (point de vu sécurité)

    merci à tous de votre aide.

  10. #10
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Points : 3 264
    Points
    3 264
    Par défaut
    le seul moyen vraiment sur pour connaitre le type de ton fichier est de lire l'entête du fichier...
    là ou ca se complique, c'est qu'il faut connaitre les spéc de chaque format...
    par exemple, les deux premiers octets d'un fichier bitmap représentent les caractères B et M

    la vérification de l'extension n'est vraiment pas une méthode sure, mais elle me parait suffisante pour proposer des fichiers en téléchargement...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  11. #11
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    tu veux dire pour proposer le téléchargement de fichier ?

    n'y a t-il pas des scripts sur lesquels on peut s'appuyer ?
    Des tuto, etc..

    EDIT: avec par exemple un .doc...on ne peux rien faire si ?

  12. #12
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Si tu ouvres un fichier .doc avec le bloc-note, tu vois qu'il commence toujours (enfin chez moi) par ÐÏࡱá (regarde par toi même). Sinon dans $_FILES['fichier_doc']['type'], tu as une application précise pour ces fichiers.

  13. #13
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    oui mais c'est la même que pour un fichier php.

    la ou je veux en venir c'est que si une personne dl un .doc, il ne pourra l'executer en php...donc pas de risque...

  14. #14
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    php propose une fonction pour récupérer le type mime mais là j'ai la fleme de chercher ce soir
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  15. #15
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    Oui c'est mime_content_type(), qui n'est pas considérée comme fiable...

  16. #16
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Citation Envoyé par Thierry8
    oui mais c'est la même que pour un fichier php.

    la ou je veux en venir c'est que si une personne dl un .doc, il ne pourra l'executer en php...donc pas de risque...
    Dans ce cas fait comme kankrelune a dit non?

  17. #17
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    bah oui ce qu'il a dit est niquel...

    mais ma question est de savoir s'il y a un risque à accepter un fichier simplement parce que l'extension est acceptée..?

    par exemple j'accepte les .doc, mais celui-ci contient du php, la personne qui tente de pirater, peut-elle exécuter un fichier en .doc, ou il n'y a pas de risque justement...

  18. #18
    Membre confirmé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 557
    Points
    557
    Par défaut
    Honnêtement, je ne sais pas ce qui est le plus risqué niveau sécurité... se baser sur le $_FILES['...']['type'] (peut-être modifiable) ou se baser sur une extension de fichier (peut-être encore même plus modifiable...)
    Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure

  19. #19
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par bkill
    Honnêtement, je ne sais pas ce qui est le plus risqué niveau sécurité... se baser sur le $_FILES['...']['type'] (peut-être modifiable) ou se baser sur une extension de fichier (peut-être encore même plus modifiable...)
    Sans hésitation la deuxième... le mime type fournis par $_FILE vient du naviguateur et est donc facilement falsifiable... l'extension elle bien qu'elle n'assure rien quand au contenu du fichier assure le comportement du serveur vis à vis de se dernier... essaye de faire un hello_world.php.jpg et d'aller dessus via ton navigateur... donc à moins que ton serveur soit configuré pour executer les fichiers .jpg comme application php () il n'y a aucun problème... le seul risque serait qu'un pirate réussise à renomer le fichier une fois que celui ci a été uploadé... mais là s'il arrive à faire ça il pourra faire bien plus sans php... .. .

    @ tchaOo°

  20. #20
    Membre régulier
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Points : 93
    Points
    93
    Par défaut
    ok impeccable.

    Merci à tous de votre aide !

Discussions similaires

  1. [http] Accéder à un fichier généré par un serveur
    Par Seiya dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 27/02/2007, 18h10
  2. [Configuration] Téléchargement de fichier par HTTP
    Par Thierry8 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 06/06/2006, 22h30
  3. Téléchargement de fichiers par HTTP / FTP
    Par Gladiator dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 07/12/2005, 11h28
  4. Lire un fichier txt par http (C sous Linux)
    Par sleg dans le forum Réseau
    Réponses: 4
    Dernier message: 18/10/2005, 11h07
  5. [HTTP] Envoi de fichiers par http
    Par Delendial dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 03/09/2004, 09h37

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