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 :

Améliorer ce code


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Par défaut Améliorer ce code
    bonjour

    J'utilise ce code pour télécharger les fichiers depuis mon site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	<?php
     
    if(!empty($_GET['file'])){
    	$getId = $_GET['file'];
     
    		echo '<a href="javascript:MaxWin(\''.$getId.'\')" ><img border="0" src="telecharger.gif" width="35" height="36"></a>';
        }else{
            echo 'Cannot find  file  ' ;
        }
    ?>
    Le script fonctionne bien.
    Affiche les liens de téléchargement depuis url:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    telecharger.php?file=monfichier.rar
    Pouvez-vous m'aider à le développer et le rendre plus sécurisé

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    ce n'est pas de l'"amélioration de code" qu'il te faut, mais une ré-écriture complète !
    Actuellement, avec ton code, on peut télécharger n'importe quel fichier de ton serveur.

    Commence par te poser les bonnes questions, en partant du principe que "le pire est toujours possible"

    ex. :
    Passage du nom de fichier en GET dans l'URL, en clair :
    - n'importe qui peut modifier ce nom directement dans la barre d'adresse.
    - en clair = lisible
    => comment éviter ca ? passer en POST ? en SESSION ? crypter le nom ? ...

    Le fichier :
    - le fichier existe sur le serveur ?
    => vérifier l'existence -> is_file() - file_exists()
    - n'importe quelle extension ?
    => vérifier l'extension (liste d'extensions autorisées)
    - fichier autorisé au téléchargement ?
    => liste de fichiers autorisés (?)

    ...

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Par défaut
    bonjour

    Merci jreaux62 pour vos éclaircissements.
    je n'ai pas bien expliqué pour vous.

    Voici le code Javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <SCRIPT language=JavaScript src="telecharger.js"></SCRIPT>
     
    <SCRIPT language=JavaScript>
      <!--
      function MaxWin(adr)
      { location="http://autre_serveur.com/doc/"+adr+".rar";}
      // -->
      </SCRIPT>
    URL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://mon_serveur.com/telecharger.php?file=monfichier
    Pour le fichier
    code de telecharger.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    if(!empty($_GET['file'])){
    	$getId = $_GET['file'];
    	if (file_exists('http://autre_serveur.com/doc/doc_'.$getId.'.rar')) {
    		echo '<a href="javascript:MaxWin(\'doc_'.$getId.'\')" ><img border="0" src="telecharger.gif" width="35" height="36"></a>';
        }else{
            echo 'Le fichier n\'existe pas ou il ya une erreur  ' ;
     
        }
    	}
    ?>
    Le problème que la recherche du fichier ne fonctionne pas
    Même si le fichier existe, le message suivant apparaît
    'Le fichier n'existe pas ou il ya une erreur

  4. #4
    Invité
    Invité(e)
    Par défaut
    http://autre_serveur.com/doc/doc_'.$getId.'.rar
    Tu veux télécharger des fichiers DEPUIS un AUTRE serveur ?
    Ca ne va pas être possible comme ca.

    Je pensais que tu voulais proposer au téléchargement des fichiers de TON serveur.

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Hum ton get n'est pas du tout securisé.

    Faudrai penser a faire un regex dessus.

    Si tu fais du regex faut faire en php car la desactivation du javascript est aisé.

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Tu veux télécharger des fichiers DEPUIS un AUTRE serveur ?
    Ca ne va pas être possible comme ca.

    Je pensais que tu voulais proposer au téléchargement des fichiers de TON serveur.
    Oui, je veux proposer mes fichiers en téléchargement à partir d'un autre serveur
    J'ai trouvé ce code, mais je ne savais pas comment l'utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    function fileExists($path){
        return (@fopen($path,"r")==true);
    }
    ?>

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ce code sert strictement a rien file_exists existe déjà ...

  8. #8
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ce code sert strictement a rien file_exists existe déjà ...
    Oui, existe mais ne fonctionne pas

    Les fichiers sont situés dans un autre serveur

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par akab48 Voir le message
    Oui, existe mais ne fonctionne pas

    Les fichiers sont situés dans un autre serveur
    un get_headers dans ce cas la

  10. #10
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Août 2011
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2011
    Messages : 33
    Par défaut
    un get_headers dans ce cas la
    Franchement je ne sais pas le faire

  11. #11
    Membre éclairé
    Homme Profil pro
    Première S
    Inscrit en
    Juillet 2010
    Messages
    266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Première S

    Informations forums :
    Inscription : Juillet 2010
    Messages : 266
    Par défaut
    Citation Envoyé par akab48 Voir le message
    Franchement je ne sais pas le faire

    pourtant pas compliqué :

    http://php.net/manual/fr/function.get-headers.php

    tu lui passe l'url, et il te retourne false ou true si le fichier existe ou pas.
    quand tu ne saits pas utiliser une fonction, va voire la doc, d'autant plus que la doc PHP existe en français, ce qui n'aiest pas le cas pour d'autres langages

Discussions similaires

  1. Amélioration de code
    Par Devilju69 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 16h01
  2. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 16h05
  3. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 16h43
  4. [Tableaux] Amélioration de code (if)
    Par Sir Tengu dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2006, 01h26
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 21h13

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