Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Inscrit en
    août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : août 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut Upload un fichier - Script sécurisé ?

    Bonjour,

    j'ai lu le tuto sur le site pour faire un système d'upload, mais je n'ai pas vraiment l'impression qu'il soit très sécurisé...
    Je trouve les vérifications très simple pouvez vous me dire ce que vous en pensez svp ?

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?php
    function upload($fichier, $destination, $maxsize=false, $extensions=false)
    {
    	//Test1: fichier correctement uploadé
    	if(!isset($_FILES[$fichier]) || $_FILES[$fichier]['error'] > 0) return false;
    	//Test2: taille limite 1mo = 1048576
    	if($maxsize !== false && $_FILES[$fichier]['size'] > $maxsize) return false;
    	//Test3: extension
    	$ext = strtolower(substr(strrchr($_FILES[$fichier]['name'], '.'), 1));
    	if($extensions !== false && !in_array($ext, $extensions)) return false;
    	//Déplacement
    	$nom = BASEPATH."/".$destination."/".sha1(uniqid(rand(), true)).".".$extension_upload;
    	return move_uploaded_file($_FILES[$fichier]['tmp_name'], $nom);
    }
     
    $upload1 = upload('fichier', 'images/upload', 1048576, array('png','gif','jpg','jpeg'));
    Je voudrais intégrer ce script sur une page accessible aux membres donc, je veux vraiment le sécurisé avant

    Cordialement,
    Cam022.

  2. #2
    Expert Confirmé Sénior

    Homme Profil pro Alain Bontemps
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    2 608
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain Bontemps
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 2 608
    Points : 4 066
    Points
    4 066

    Par défaut

    Il y a cette classe d'upload qui est plus sécurisée concernant le contrôle des images, elle gère beaucoup plus d'erreurs que cette fonction et possède de nombreuses options qu'il est facile de mettre en place en cas de besoin (redimensionnement, nommage et renommage de fichiers, upload multiple etc.).
    Il n'y aurait que 4 lignes à écrire pour la configurer dans ton cas.
    - Réalisations
    - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro Olivier
    Dév. Web / Android
    Inscrit en
    août 2003
    Messages
    3 083
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier
    Âge : 30
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Dév. Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 3 083
    Points : 6 893
    Points
    6 893

    Par défaut

    Pour protéger à coup sur un upload d'image il faut retraiter le fichier après l'upload avec GD :

    Code :
    1
    2
    $img = imagecreatefrompng('justuploaded.png'); 
    imagepng($img, 'safe.png');
    Si le code précédent échoue : ce n'était pas une image => on supprimer le fichier potentiellement dangereux.

    Une protection par vérification d'extension est inefficace.
    Une protection via le type mime fourni par HTTP est contournable
    Une protection via le type mime retourné par fileinfo est un premier point intéressant

    un peu de lecture : https://www.owasp.org/index.php/Unre...ed_File_Upload
    Pry Framework php5

  4. #4
    Invité de passage
    Inscrit en
    août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : août 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut

    Par contre je n'utilise pas seulement les images mais aussi les PDF, .doc, etc...

  5. #5
    Expert Confirmé Sénior

    Homme Profil pro Alain Bontemps
    Développeur Web
    Inscrit en
    septembre 2010
    Messages
    2 608
    Détails du profil
    Informations personnelles :
    Nom : Homme Alain Bontemps
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : septembre 2010
    Messages : 2 608
    Points : 4 066
    Points
    4 066

    Par défaut

    Ben alors vérifie au moins l'extension. C'est le minimum.

    Un fichier malveillant dont on a changé l'extension est potentiellement dangereux mais normalement pas directement. Cela dit c'est une menace sérieuse.

    Si fileinfo fonctionne sur ton serveur, utilises cette fonction. C'est la méthode la plus aboutie actuellement disponible.
    - Réalisations
    - Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •