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 :

php securiser un dossier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Points : 47
    Points
    47
    Par défaut php securiser un dossier
    salut

    je travail sur un site web, et j'ai un petit souci de securite que j'arrive pas a me debroiuller tt seul.

    je veux securiser mes dossiers.
    exemple mon dossier d'images
    j'ai essaye avec .htacess mais le probleme c'est que meme mes fichieres php ne trouvent pas l'acces vers ces images de ce dossier la
    alors qu'il est la solution pour blocker l'acces a ces dossiers pour ne pas etre affichable pour les utilisateurs et au meme temps laisser normal mes fichiers php avoir acces a ces elements de ces dossier sans probleme

    merci

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Si par exemple tu ne souhaites pas afficher certaines images pour les internautes non identifiés, et les affichés pour ceux identifiés, il faut en 1er un système d'identification, comme les session.

    Après, il ne faut pas placer ces images à l'intérieur du répertoire du virtualhost (le www ou autre htdoc, public, bien souvent), mais en-dehors.
    Il sera impossible d'y accéder directement via une URL sur une de ces images.

    Il faudra ensuite créer un fichier Php qui sera en quelque sorte un pont pour accéder à cette image, donc de pouvoir faire quelques traitements de vérification avant de renvoyer l'image.
    Il faudra dans celui-ci renvoyer le flux de l'image demandée, avec une fonction comme fread() par exemple.
    Pour finir, générer la balise <img /> dont l'URL pointera vers le fichier Php vu ci-dessus.

    On crée une image dynamique en quelque sorte.
    Faut savoir que ce mécanisme sera un peu plus lourd que la manière traditionnelle.

    Exemple.
    Dans le code de la page qui affiche l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="image_securise.php?name=une_image.jpg" />
    Dans le fichier image_securise.php
    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
    <?php
    // Entête
    header('Content-type: image/jpg');
     
    session_start();
     
    // Vérification si identifié
    if (isset($_SESSION['isLog'], $_GET['name']) && $_SESSION['isLog'] === TRUE) {
        if (!empty($_GET['name'])) {
            $name = $_GET['name'];
     
            $chemin_images = 'chemin/repertoire/image/securise/';
            // Si l'image demandée existe
            if (file_exists($chemin_images.$name)) {
                $handle = fopen($chemin_images.$name, 'rb');
                $flux_img = fread($handle, filesize($chemin_images.$name));
                fclose($handle);
     
                // Renvoie le flux du fichier
                echo $flux_img;
            }
        }
    }
    ?>
    Je n'est pas testé.
    Et c'est un des principes couramment utilisé.


    A coté de ça, vu qu'il faut un système d'identification, l'idée aussi c'est de faire la vérification (si identifié) avant de générer le code HTML de la balise <img />.
    En somme :
    - SI identifié ALORS on génère la balise <img />
    - SINON on ne fait rien

    Ce qui veut dire que la vérification dans le fichier "image_securise.php" fait quelque part doublon (double vérif), mais cela reste néanmoins nécessaire pour "contrer" un internaute qui tenterait d'y accéder plus ou moins frauduleusement sans être identifié.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 117
    Points : 47
    Points
    47
    Par défaut
    merci pour ces prescesions , bien explique

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

Discussions similaires

  1. securisation des dossiers
    Par witch dans le forum Sécurité
    Réponses: 0
    Dernier message: 23/01/2008, 19h23
  2. securiser un dossier d administration
    Par ozarus dans le forum Sécurité
    Réponses: 7
    Dernier message: 12/01/2008, 16h27
  3. Sauvegarde PHP d'un dossier et de ses sous-dossiers
    Par ducrocq62 dans le forum Langage
    Réponses: 1
    Dernier message: 06/12/2007, 13h23
  4. Réponses: 5
    Dernier message: 02/02/2007, 15h53
  5. Réponses: 1
    Dernier message: 30/12/2006, 11h14

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