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 :

Combiner sessions et .htaccess


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut Combiner sessions et .htaccess
    Bonjour,
    J'utilise un système de session pour m'authentifier.
    Lorsque je me suis authentifié, j'accède à travers la commande php suivante
    : header("Location: Prive/index.php)

    au fichier index.php se trouvant dans le répertoire "Prive".
    Ce répertoire, je l'ai protégé par le système .htaccess en y mettant "Deny
    from all".

    Seulement l'accès m'est interdit par .htaccess !!!

    Donc comment je peux faire pour protéger ce répertoire pour les accès
    directs, mais en autorisant l'accès à travers les session.
    (si la session existe et la valeur égale à tel ou tel valeur donc j'accède à tel ou tel dossier protégé)
    (j'espère que je suis clair) ?

    Précision, ce répertoire Prive, contient beaucoup d'autres fichiers (images
    et autres) dont je veux en protéger l'accès.

    Merci d'avance pour vos réponses

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Ça ne peut fonctionner : les deux n'ont strictement aucun rapport ou relation d'aucune sorte.

    Il faut utiliser entièrement soit l'un soit l'autre : une authentification HTTP gérée par Apache pour l'accès au répertoire et ses fichiers ou une session PHP, ce qui signifie que dans ce dernier cas il faut un script intermédiaire (se chargeant alors, via les données de la session, à en interdire l'accès sinon servir le document identifié demandé).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Citation Envoyé par julp Voir le message
    Ça ne peut fonctionner : les deux n'ont strictement aucun rapport ou relation d'aucune sorte.

    Il faut utiliser entièrement soit l'un soit l'autre : une authentification HTTP gérée par Apache pour l'accès au répertoire et ses fichiers ou une session PHP, ce qui signifie que dans ce dernier cas il faut un script intermédiaire (se chargeant alors, via les données de la session, à en interdire l'accès sinon servir le document identifié demandé).
    Merci, j'ai remarqué que même facebook ne protège pas mes photos, si je prend le lien en dure de l'une de mes images sur facebook, ensuite même en détruisant ma session j'arrive quand même à l'afficher. est ce pour ça qu'il mettent des liens pas facile à retenir ? (trop long avec plein de chiffre ).

    Je sais que c'est un peut bête mais est ce possible de faire un set des variable
    $_SERVER['PHP_AUTH_USER']
    $_SERVER['PHP_AUTH_PW']


    Merci

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Pour facebook, aucune idée n'en étant pas utilisateur.

    Citation Envoyé par death_style Voir le message
    Je sais que c'est un peut bête mais est ce possible de faire un set des variable
    $_SERVER['PHP_AUTH_USER']
    $_SERVER['PHP_AUTH_PW']
    Une authentification HTTP gérée par PHP ne serait que locale (propre à un script) contrairement à une gérée par Apache qui s'applique (par défaut du moins) sur l'arborescence. Une authentification HTTP gérée par PHP n'est pas portable (dépendant du serveur/SAPI) et une session PHP pure est en principe plus souple et transparente.

    Les définir ? Avec une authentification HTTP gérée par Apache, ce ne serait pas nécessaire puisque le client réémet les identifiants. Si, en revanche, c'est géré ne serait-ce qu'en partie par PHP, c'est directement impossible notamment pour la simple et bonne raison qu'aucune variable ne persiste après la fin du script (celles en session pouvant être une exception). Il faudrait alors pour cela que PHP se comporte également comme un client HTTP intermédiaire (proxy) - avec un moyen de "reconnaître" le client. Une session PHP seule me semble donc plus simple à mettre en œuvre.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    Merci pour tes réponses,

    C'est un peu dommage car si j'utilise uniquement des session, alors seul les page php avec le bout de code de vérification seront protégées. si j'ai une image dans le même dossier privé, son URL suffit pour y accéder.

    Je cherche pas forcement à le faire avec session+htaccess, mais une manière peu import laquelle

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par death_style Voir le message
    C'est un peu dommage car si j'utilise uniquement des session, alors seul les page php avec le bout de code de vérification seront protégées. si j'ai une image dans le même dossier privé, son URL suffit pour y accéder.
    Non, pas nécessairement, il faudrait mettre ces fichiers plus haut que la racine web pour ne pas qu'ils puissent être accessibles ou à défaut mettre un fichier .htaccess interdisant l'accès à tout client. Vous créez ensuite une partie identification qui va créer/initialiser la session PHP et une autre pour accéder aux fichiers. Cette dernière renverra sur la partie d'identification en absence de session sinon elle servira le fichier demandé dont le nom ou un identifiant sera fourni en paramètre (GET notamment - utiliser éventuellement une réécriture pour "embellir").

    Un exemple incomplet pour la seconde partie, sans base de données :
    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
    <?php
    session_start();
    if (!isset($_SESSION['util_id'])) {
        // identification (redirection si c'est un script à part)
    } else {
        if (isset($_GET['nom'])) {
            define('REPOSITORY', '/home/toto/data/'); // Doit se terminer par un /
            if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
                ini_set('open_basedir', REPOSITORY);
            }
            $path = realpath(REPOSITORY . $_GET['nom']);
            if (!$path || !is_file($path)) {
                die("Fichier inexistant");
            } else {
                if (strpos($path, REPOSITORY) !== 0) {
                    die("Où vas-tu ?"); // un petit malin cherche à remonter l'arborescence
                } else {
                    // émettre les entêtes HTTP qui conviennent (Content-type notamment)
                    readfile($path);
                }
            }
        } else {
            die("Fichier désiré non spécifié");
        }
    }
    Il y a d'autres implémentations possibles mais certaines ne seront pas adaptées si le contenu de ces fichiers n'est pas totalement maitrisé ou peuvent être bypassées. _Mac_, ici, propose une solution dont la requête est détournée par réécriture sur un tel script intermédiaire.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    salut, et merci pour l'aide.
    enfait cette solution , si j'ai bien compris , c'est pour permettre les téléchargements de fichiers. mais ce que je veux c'est que mes images soient affichées à partir du code html.

    Supposons la structure suivante/
    • log.php

    • dossier_privé 1/
      • index.php

      • images/
        • mage1.jpg.


    Le fichier index.php vérifie la session. si c'est ok y a un contenue html qui s'affiche dont une balise <IMG> avec le param src qui point vers l'image image1.jpg.
    sachant que avec un lien en dur de l'image , je peut y accéder sans m'authentifier.

    voilà un peu mon index.php du dossier privé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    if(!isset($_session['OK']) 
         header("Locaton: /log.php");
    else {?>
    <html>
    <body>
    <a> Hola ..  ça gaze</a>
    <img src="images/image1.jpg" />
    </body>
    </html>
    <?php}?>
    Donc, session ou pas session, je peut accéder à l'image. si je mets un .htaccess dans le dossier images, même si je suis authentifier l'image ne s'affiche pas.


    J'ai essayé des trucs avec les solution que tu m'a proposer. mais sans succès.
    peut être que j'ai mal saisie le code.

    sinon est ce qu'il une solution pour ça.

    mille merci

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par death_style Voir le message
    enfait cette solution , si j'ai bien compris , c'est pour permettre les téléchargements de fichiers. mais ce que je veux c'est que mes images soient affichées à partir du code html.
    C'est la même chose, ce n'est qu'une question d'entêtes HTTP. C'est plutôt l'incorporation qui est à prendre en compte suivant le type de ressource.

    Citation Envoyé par death_style Voir le message
    Donc, session ou pas session, je peut accéder à l'image. si je mets un .htaccess dans le dossier images, même si je suis authentifier l'image ne s'affiche pas.
    C'est parfaitement normal :
    • si l'accès aux fichiers est possible, n'importe qui qui en connaît l'adresse et/ou la retrouve bypassera cette protection ...
    • ... c'est bien pour ça qu'on met en place un script PHP intermédiaire. Lui aura accès à ces fichiers (puisqu'il passe directement par le système de fichiers et non par le protocole HTTP qui ne devrait pas permettre l'accès à ces fichiers) et qui en restituera le contenu

    Visiblement cette partie n'est pas bien comprise.


    Je vais repartir sur une solution semblable à celle de _Mac_, minimale, en détournant (uniquement) l'affichage des images sur un script intermédiaire par l'intermédiaire d'une réécriture.

    Arborescence :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .htaccess
    login.php
    intermediaire.php
    private/
    private/.htaccess
    private/test.png

    private/.htaccess (normalement inutilisé, présent par sécurité) :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Deny from all
    Satisfy any

    .htaccess :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Options +FollowSymLinks
    <IfModule mod_negociatiation.c>
        Options -MultiViews
    </IfModule>
    
    RewriteEngine On
    
    # On redirige toute demande de fichier image situé sous private vers le script
    RewriteCond %{REQUEST_URI} \.(jpe?g|gif|png)$ [NC]
    RewriteRule ^private/ intermediaire.php [QSA,L]

    intermediaire.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
    25
    <?php
    session_start();
     
    function generate_image($message) {
        $img = imagecreatetruecolor(60, 30);
        $color = imagecolorallocate($img, 255, 255, 255);
        imagestring($img, 1, 5, 5,  $message, $color);
     
        header('Content-type: image/jpeg');
        imagejpeg($img);
        imagedestroy($img);
    }
     
    if (!isset($_SESSION['id'])) {
        generate_image('denied');
    } else {
        $requested = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI']; // à potentiellement adapter
        $mime = mime_content_type($requested); // à remplacer par fileinfo si possible
        if (is_file($requested)) {
            header('Content-type: ' . $mime);
            readfile($requested);
        } else {
            generate_image('not found');
        }
    }
    login.php (PDO/MySQL et par formulaire pour être généraliste sinon s'orienter sur une authentification HTTP via 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    session_start();
     
    if ($_SERVER['REQUEST_METHOD'] == 'POST') {
        $dbh = new PDO('mysql:host=localhost;dbname=developpez', 'developpez', 'developpez', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $login = $dbh->prepare('SELECT id FROM utilisateurs WHERE login = :login AND mot_de_passe = SHA(:mdp)');
        $login->bindValue('login', $_POST['login'], PDO::PARAM_STR);
        $login->bindValue('mdp', $_POST['mdp'], PDO::PARAM_STR);
        $login->execute();
        if ($login->rowCount() === 1) {
            $util = $login->fetch(PDO::FETCH_ASSOC);
            $_SESSION['id'] = $util['id'];
        } else {
            afficher_formulaire("Aucune correspondance");
        }
    } else {
        afficher_formulaire();
    }
     
    function afficher_formulaire($message = '') {
    ?>
     
    <form action="" method="post">
        Login : <input type="text" name="login" />
        <br />
        Mot de passe : <input type="text" name="mdp" />
        <br />
        <input type="submit" value="Login" />
    </form>
    <?php if ($message) { echo '<p>', $message, '</p>'; } ?>
     
    <?php
    }
    Une simple page de test :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://x.y.z/private/test.png" />
    Vous affichera un résultat différent suivant que vous ayez ou non passé l'identification (login.php).

    Par contre, je n'ai volontairement pas mis de redirection de intermediaire.php vers login.php quand on n'est pas authentifié car pour une demande d'image ce n'est pas adéquat (sinon il faudrait s'orienter sur une authentification HTTP gérée par PHP si cela est possible).

    Enfin, est-ce qu'une session est bien une solution sachant qu'elle expire assez rapidement (24 minutes par défaut théoriquement) ?

  9. #9
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par death_style Voir le message
    sachant que avec un lien en dur de l'image , je peut y accéder sans m'authentifier.

    voilà un peu mon index.php du dossier privé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    if(!isset($_session['OK']) 
         header("Locaton: /log.php");
    else {?>
    <html>
    <body>
    <a> Hola ..  ça gaze</a>
    <img src="images/image1.jpg" />
    </body>
    </html>
    <?php}?>
    Slt
    Bien sûr que tu peux y accéder puisque, toi, tu connais le chemin complet sans avoir besoin de t'identifier et d'ouvrir une session, ce qui n'est pas le cas des autres.

    Ceux pour qui la session n'est pas OK, comment pourraient-ils connaître le chemin complet ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 122
    Points : 57
    Points
    57
    Par défaut
    salut,
    @julp
    Je crois que cette solution me convient, je vais l'essayer. Mon apache est fraichement installé, et RewriteEngine n'est pas reconnue. Je dois ajouter le module correspondant.
    Merci pour le temps que t as consacrer.


    Citation Envoyé par alain31tl Voir le message
    Slt
    Bien sûr que tu peux y accéder puisque, toi, tu connais le chemin complet sans avoir besoin de t'identifier et d'ouvrir une session, ce qui n'est pas le cas des autres.

    Ceux pour qui la session n'est pas OK, comment pourraient-ils connaître le chemin complet ?
    bah un malin peut bien s'inspirer et deviner le lien. en regardant son compte à lui par ex.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par death_style Voir le message
    Bonjour,
    Je suis désolée, mais tout ceci me parait bien bien compliqué !
    J'essais de me faire mon petit plan de sécuritée a moi

    si par je ne sais quelle méthode, tu as une valeur
    $_session['cbon']="ok" ...

    les pages interdites sont dans la racine du site et commencent par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?PHP
    session_start();
    if (!isset($_SESSION['cbon'])) {$_SESSION['cbon']="";$cbon="";}
         else {$cbon=$_SESSION['cbon'];}
    if ($cbon!="ok") 
     {
     header('Location: http://www.tonsite.com/index.php');
     exit;
     } 
    ?>
    et les objets, OUI ils sont dans un répertoire protégé par un index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
     header('Location: http://www.tonsite.com/index.php');
     exit;
    ?>
    les objets (PAS DE PHP ICI) sont protégés par htaccess
    ils pourront donc étre lus par les php du site.
    Mais le répertoire reste bloqué a un dir ou autre ....

  12. #12
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Citation Envoyé par mauriser Voir le message
    <?php
    header('Location: http://www.tonsite.com/index.php');
    exit;
    ?>
    [/code]

    les objets (PAS DE PHP ICI) sont protégés par htaccess
    ils pourront donc étre lus par les php du site.
    Mais le répertoire reste bloqué a un dir ou autre ....
    Ah oui mauriser,

    Trés interresante remarque, et surtout bien vu.

  13. #13
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par mauriser Voir le message
    Je suis désolée, mais tout ceci me parait bien bien compliqué !
    Non et vous suivez visiblement le même chemin.

    Citation Envoyé par mauriser Voir le message
    les pages interdites sont dans la racine du site et commencent par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?PHP
    session_start();
    if (!isset($_SESSION['cbon'])) {$_SESSION['cbon']="";$cbon="";}
         else {$cbon=$_SESSION['cbon'];}
    if ($cbon!="ok") 
     {
     header('Location: http://www.tonsite.com/index.php');
     exit;
     } 
    ?>
    Ok, mais si ce n'est pas des scripts PHP qu'on doit protéger ? A moins de forcer PHP à voir ces fichiers comme des scripts et utiliser la directive auto_prepend_file pour inclure automatiquement ce code de protection. Solution requérant un minimum de liberté par rapport à la configuration du serveur :

    .htaccess dans le dossier à protéger (requiert PHP en module Apache) :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # Définir le script de protection à inclure automatiquement
    php_value auto_prepend_file "C:/AMP/www/intermediaire.php"
    
    # Forcer tout fichier à être vu comme un script PHP
    ForceType application/x-httpd-php

    intermediaire.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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <?php
    session_start();
     
    if (!isset($_SESSION['id'])) {
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            $dbh = new PDO('mysql:host=localhost;dbname=developpez', 'developpez', 'developpez', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $login = $dbh->prepare('SELECT id FROM utilisateurs WHERE login = :login AND mot_de_passe = SHA(:mdp)');
            $login->bindValue('login', $_POST['login'], PDO::PARAM_STR);
            $login->bindValue('mdp', $_POST['mdp'], PDO::PARAM_STR);
            $login->execute();
            if ($login->rowCount() === 1) {
                $util = $login->fetch(PDO::FETCH_ASSOC);
                $_SESSION['id'] = $util['id'];
            } else {
                afficher_formulaire("Aucune correspondance");
                exit;
            }
        } else {
            afficher_formulaire();
            exit;
        }
    } else {
        $requested = $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
        if (is_file($requested)) {
            $mime = mime_content_type($requested); // à remplacer par fileinfo si possible
            #if (/* si c'est bien un script PHP ... */) {
            #    ... en interdire l'accès ; ne rien faire (corps vide), conduira à son interprétation
            #    header('HTTP/1.0 403 Forbidden', TRUE, 403);
            #    echo 'Forbidden';
            #    exit;
            #} else {*/
                header('Content-type: ' . $mime);
                readfile($requested);
                /**
                 * On met fin au script pour éviter toute erreur de syntaxe (fichier binaire) ou exécution de script
                 * malveillant. Si ça doit aussi concerner des scripts PHP à interpréter, il faudra dissocier ce cas
                 * et le traiter autrement
                 **/
                exit;
            #}
        } else {
            header('HTTP/1.0 404 Not Found', TRUE, 404);
            echo 'Not Found';
            exit;
        }
    }
     
    function afficher_formulaire($message = '') {
    ?>
     
    <html> 
    <form action="" method="post">
        Login : <input type="text" name="login" />
        <br />
        Mot de passe : <input type="text" name="mdp" />
        <br />
        <input type="submit" value="Login" />
    </form>
    <?php if ($message) { echo '<p>', $message, '</p>'; } ?>
     
    <?php
    }
    C'est plus simple mais je ne suis pas fan d'une telle mise en œuvre.

    Citation Envoyé par mauriser Voir le message
    les objets (PAS DE PHP ICI) sont protégés par htaccess
    ils pourront donc étre lus par les php du site.
    Mais le répertoire reste bloqué a un dir ou autre ....
    Sauf que nous n'en avons pas d'implémentation

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par julp Voir le message
    Sauf que nous n'en avons pas d'implémentation
    Je comprends ce que tu explique, mais ne trouve pas ta vision des choses contradictoire avec ce que je proposes.
    Par contre , dans ma façon de démarrer chaque PHP protégé, j'introduit bien en tête la programmation d'une mini fonction particulière, bien spécifiée.
    définition de l'implémentation je penses.

  15. #15
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Evidemment, et en plus :
    Citation Envoyé par death_style Voir le message
    Supposons la structure suivante/
    • log.php

    • dossier_privé 1/
      • index.php

      • images/
        • mage1.jpg.
    Suffit aussi de rajouter un fichier index.php ou html dans le répertoire images pour protéger l'ouverture de ce répertoire en ligne.
    De toute façon, c'est clair, celui qui s'identifie pourra connaître le nom de l'image ouverte...et aprés ?
    Mais impossible pour le/les noms des autres contenus de ce répertoire sauf pour ceux qui seraient devins

    Maintenant, je ne connais pas l'objectif de ton applic, mais si tu veux, par exemple, associer une image à un utilisateur unique, rien ne t'empêche de mettre cette variable [image] en session au moment de l'identification.
    En association avec l'id ou le nom de l'utilisateur bien sûr.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par alain31tl Voir le message
    Evidemment, et en plus :
    ++ pour toi l' Ami

Discussions similaires

  1. Comment prévoir une durée de session avec htaccess ?
    Par PierreR75 dans le forum Sécurité
    Réponses: 2
    Dernier message: 23/12/2009, 09h14
  2. sessions et .htaccess
    Par lebonvieuxnovice dans le forum Sécurité
    Réponses: 0
    Dernier message: 08/09/2009, 05h28
  3. Sessions et htaccess
    Par tibom dans le forum Langage
    Réponses: 3
    Dernier message: 27/10/2008, 16h13
  4. perte de session avec htaccess
    Par wehtam dans le forum Langage
    Réponses: 1
    Dernier message: 29/08/2008, 22h52
  5. Sessions Apache, htaccess et PHP.
    Par Invité dans le forum Apache
    Réponses: 2
    Dernier message: 31/05/2007, 10h27

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