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 :

Bug upload en boucle : est ce le cache ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Par défaut Bug upload en boucle : est ce le cache ?
    Bonsoir,

    j'ai un script PHP, sur un site, qui permet d'uploader des documents PDF via un espace privé, et généralement, cela fonctionne correctement.

    Mais 2 ou 3 fois par an, un cas de figure se produit : l'upload d'un même fichier est effectué durant des heures, accompagnant l'envoi du même mail avec le lien menant vers le document (des 10zaines de milliers de fois, je ne vous dis pas l'état de ma BAL).

    Je me hâte de renommer la page, rendant l'accès au script inaccessible à l'uploadeur. Je renomme également le répertoire cible des documents, et je supprime dans la foulée le doc uploadé x fois avant que cela ne fasse exploser le serveur. J'en garde juste une copie.

    Sauf que je continue à recevoir le même mail durant des heures et je ne trouve aucune solution efficace.

    En fait, je n'arrive pas à savoir si c'est au niveau du site ou du serveur que ça coince. A moins que ce soit peut-être au niveau du proxy voire de la mémoire cache du navigateur de l'uploadeur, vu que le script n'est rapidement plus accessible par ce dernier.

    Bref, si vous avez des idées pour des solutions ou des pistes pour identifier la cause, je suis preneur !

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ben tu ne nous montres pas le code de l'upload ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Par défaut
    PAGE 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <form id="form_bia" name="form_bia" src="https://www.xxx.com/espaceprive/" style="display: block;" method="post" enctype="multipart/form-data" >
    <br> 
    <input type="file" name="filename_bia" id="filename_bia">
    <input type="hidden" name="MAX_FILE_SIZE" value="2400000" />
    <input type="hidden" id="codeid" name="codeid" value="<?php echo "$uid-$uiddevis"; ?>">
    <input type="hidden" id="id" name="id" value="<?php echo $_REQUEST['newid']; ?>">
    <input type="hidden" id="codeadh" name="codeadh" value="<?php echo $codeadh; ?>">
    <input type="hidden" id="salarie" name="salarie" value="<?php echo $prenom." ".$nom; ?>">
    <br>
    <input type="submit" id="envoyer" name="envoyer" value="Envoyer" style="border:0;padding:7px; padding-left:12px; padding-right:12px; background:#3098ca;color:white;">
    </form>
    PAGE 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
    if(!empty($_FILES['filename_bia']['name']))
    {
     
     
    	$typefile = $_FILES['filename_bia']['type'];
    	$chemin = "/home/lmlcom/domains/xxx.com/public_html/rib/";
     if ($typefile=="application/pdf"||$typefile=="application/force-download")
    	{ 
    		$format="pdf"; 
    	}
    	$newfile = "COLL_BIA"."-".$_POST['codeid']."-".time()."-".$_POST['id'].".".$format;
    	if($format=="PDF")
    	{
    	move_uploaded_file ($_FILES['filename_bia']['tmp_name'],$chemin.$newfile);
     
    $corpsmessage = file_get_contents('https://www.xxx.com/template1coll.tpl');
    $corpsmessage = addslashes($corpsmessage);
    $sujet = "Document(s)";
    $lienfichier = "https://www.xxx.com/rib/".$newfile;
     
    $contenu = "Document(s) pour ".$_POST['salarie'].".<br><div align=\"center\" style=\"margin:15px;\"><br><a href=\"$lienfichier\" class=\"btngreen\" style=\"background: #E4D949;background-image: -webkit-linear-gradient(top, #E4D949, #DACD20);background-image: -moz-linear-gradient(top, #E4D949, #DACD20);background-image: -ms-linear-gradient(top, #E4D949, #DACD20);background-image: -o-linear-gradient(top, #E4D949, #DACD20);background-image: linear-gradient(to bottom, #E4D949, #DACD20);-webkit-border-radius: 28px;-moz-border-radius: 28px;border-radius: 28px;font-family: 'Roboto', sans-serif;color:#0b336a;font-size: 14px;padding: 12px 24px 12px 24px;text-decoration: none;\">Télécharger le doc</a></div><br>";
     
    $info = "";
     
    $corpsmessage = ereg_replace("\[CONTENU\]", $contenu, $corpsmessage); 
    $corpsmessage = ereg_replace("\[INFO\]", $info, $corpsmessage); 
     
    	mailjetfunc("contact@xxx.com",$sujet,$corpsmessage);
     
    //rajout du jour donc non testé, dans le but de forcer le cache
    header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    header("Expires: ".gmdate("D, d M Y H:i:s", time()+ 604800)." GMT");
    header("Cache-Control: public, max-age=604800");
     
     
    	}
     
    }
    ?>

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Des petites choses en passant :
    - Ne pas mettre de fermeture PHP en fin de fichier
    - Ne pas transformer 'pdf' en 'PDF'
    - poser un if(move_uploaded_file...){
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    if(!empty($_FILES['filename_bia']['name'])){
      $typefile = $_FILES['filename_bia']['type'];
      $chemin = "/home/lmlcom/domains/xxx.com/public_html/rib/";
      if ($typefile=="application/pdf" || $typefile=="application/force-download"){ 
        $format="pdf"; 
      }
      $newfile = "COLL_BIA"."-".$_POST['codeid']."-".time()."-".$_POST['id'].".".$format;
      if($format=="pdf"){
        if(move_uploaded_file ($_FILES['filename_bia']['tmp_name'],$chemin.$newfile)){
     
          $corpsmessage = file_get_contents('https://www.xxx.com/template1coll.tpl');
          $corpsmessage = addslashes($corpsmessage);
          $sujet = "Document(s)";
          $lienfichier = "https://www.xxx.com/rib/".$newfile;
     
          $contenu = 'Document(s) pour '.$_POST['salarie'].'.<br>
          <div align="center" style="margin:15px;"><br>
          <a href="'.$lienfichier.'" class="btngreen" style="background: #E4D949;background-image: -webkit-linear-gradient(top, #E4D949, #DACD20);background-image: -moz-linear-gradient(top, #E4D949, #DACD20);background-image: -ms-linear-gradient(top, #E4D949, #DACD20);background-image: -o-linear-gradient(top, #E4D949, #DACD20);background-image: linear-gradient(to bottom, #E4D949, #DACD20);-webkit-border-radius: 28px;-moz-border-radius: 28px;border-radius: 28px;font-family:Roboto, sans-serif;color:#0b336a;font-size: 14px;padding: 12px 24px 12px 24px;text-decoration: none;">Télécharger le doc</a>
          </div><br>';
     
          $info = "";
     
          $corpsmessage = ereg_replace("\[CONTENU\]", $contenu, $corpsmessage); 
          $corpsmessage = ereg_replace("\[INFO\]", $info, $corpsmessage); 
     
          mailjetfunc("contact@xxx.com",$sujet,$corpsmessage);
        }
      }
    }
    Ce que tu décris me fait davantage penser à un code malveillant qu'à autre chose. Notamment, tu n'utilises pas la fonction filesize et c'est une faille de sécurité.
    Inspire-toi de ce tutoriel (code sécurisé tout à la fin de la page).

    https://antoine-herault.developpez.c...ls/php/upload/
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. [bug] Mysql ou c'est moi ? pour un simple SELECT
    Par junior68 dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/05/2009, 01h08
  2. Upload d'avatars est ce dangereux?
    Par zintelix3d dans le forum Sécurité
    Réponses: 9
    Dernier message: 12/08/2008, 17h14
  3. Réponses: 1
    Dernier message: 14/09/2006, 14h23
  4. [VBS]Bug sur les boucles for.
    Par méphistopheles dans le forum VBScript
    Réponses: 7
    Dernier message: 24/03/2006, 22h17

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