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 :

[Sécurité] Sécurité pour accès a des pages PHP [Fait]


Sujet :

Langage PHP

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 54
    Points
    54
    Par défaut [Sécurité] Sécurité pour accès a des pages PHP
    Voici j'ai réalisé un site d'administrateur pour gérer un réseaux

    je voudrais que l'utilisateur puis ne pas accèdé au autre page sans avoir passé la page de connexion.

    comment puis-je faire?

    petit schéma de mon site :
    --Page de connexion
    ------page d'acceuil
    ------page de paramètrage

    je voudrais que si l'utilisateur tape l'adresse directe de la page d'acceuil ou de la page de paramétrage ce dernier soit redirigé vers la page de connexion (faire une vérification du mot de passe et identifiant)

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Grand classique.
    .htaccess

    Il doit également y avoir un tutorial qui traine sur dvp.com et qui traite de la sécurité en php.
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 54
    Points
    54
    Par défaut
    je viens de lire le tutoriel de cette méthode

    j'avoue ne pas avoir tout saisi

    si quelqu'un pourrais me l'expliquer par exemple j'ai un page de connexion fait pas mes soins
    qui grâce a du PHP vérifie le mot de passe et l'identifiant tapé avec celui qui est contenu dans un fichier ini
    si cela c'est bon il appel la page index.php

    donc comment dois faire avec ta méthode pour dire que si l'utilisateur demande directement la page index.php sans passer par la page connexion on lui redemande le mot de passe et identifiant du début?

    merci d'avance de ton aide et de ta réponse rapide

  4. #4
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    En fait le principe du .htaccess, c'est qu'il est géré directement par apache.
    En gros, tu pose ton fichier .htaccess dans un répertoire. Et si un gars veut acceder a une page qui est dans ce répertoire (ou un sous répertoire), alors automatiquement, sans que tu n'ai besoin d'écrire de code php, une fenetre de login/pass apparait.
    Cette méthode a l'avantage d'être l'une des plus sure pour une mise en place relativement aisée (tu vas probablement galérer un peu la premiere fois, histoire de mettre au point les chemin d'acces au fichier de mots de passe et ces choses là, mais une fois fait une fois, après ca va mieux).

    Des tutoriels sur l'art et la maniere de faire, il y en a légion sur internet.

    Après, si tu veux vraiment faire un système d'authentification par toi même, il y a plusieurs maniere.
    Le principe de base est de passer une variable de page en page (ou via session, l'important est de pouvoir tester son existence/contenu a chaque page).
    Au début de chacune de tes pages, tu testes la variable en question (je te conseille d'inclure un petit fichier qui fera le boulot). Si la variable n'existe pas ou si elle n'a pas le bon contenu, tu rediriges vers la page d'acceuil, sinon tu laisse le code de ta page s'executer.
    Et sur la page d'acceuil, tu crée la variable en question quand la personne rentre les bon logins/mot de passe.
    A partir du principe général, il existe presque autant de maniere de le mettre en oeuvre que de développeur. Perso, j'aime bien creer a la connexion une variable de type id-xxxxxxx(code aléatoire), que je rentre dans une bdd et que je passe a chaque page, et a chaque tentative de lecture d'une page, je vais lire dans la bdd s'il existe une ligne correspondant, avec une date de "derniere modification" suffisament proche sinon, redirection.
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 54
    Points
    54
    Par défaut
    bon j'ai essayé la premiere version avec .htaccess
    bon le panneau d'identification marche bien

    mais quand je veux taper le mot de passe rien ne se passe :

    le .htaccess :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Authname "Zone protégée"
    AuthUserFile /Administrateur/.htpasswd
    AuthGroupFile /dev/null
    AuthType Basic
    <limit GET POST>
    require valid-user
    </limit>
    le .htpasswd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    admin:X9eFXKOxDVDaw
    pour la seconde solution j'y avais pensé aussi a une variable qui passe d'une page a une autre
    mais comment fait on ?


    je voudrais que le mot de passe soit admin (truc bidon) donc je sais pas si le mot de passe est bien crypté.
    Pour info supplémentaire je suis sous serveur Windows 2000

    merci pour votre aide et votre rapidité

  6. #6
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AuthUserFile /Administrateur/.htpasswd
    A tout les coups, le chemin n'est pas le bon.
    Commence par mettre ton fichier de mot de passe au même endroit, en l'appelant sans chemin.
    Ensuite, si tu as un doute sur l'encodage de ton mot de passe, il existe plusieurs site qui font des encodages en ligne. Testes sur plusieurs et mets tous les résulats ^_^ Il y en aura bien un de bon dans le tas ;-p
    pour la seconde solution j'y avais pensé aussi a une variable qui passe d'une page a une autre
    mais comment fait on ?
    Ben soit avec une variable de session (voir les tutoriels qui vont bien), soit tu les passes a la main, en mettant la variable dans tous tes liens internes (variable hidden dans les formulaires en POST, parametre dans l'url en GET).
    Le plus simple reste probablement quand même les sessions.
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 453
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 453
    Points : 4 602
    Points
    4 602
    Par défaut
    salut,
    sans passer par le .hhacces, tu peux passer par les sessions

    et a chaque début de page que tu veux protéger, tu test si le user a le doit d'accéder a la page ou non :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    requete sql te permettant de retourner le log et le psw du user
    et tu compare a celui qu'il a renseigné sur ta page d'index
    if($result['psw'] != $_SESSION['psw'])
    { // pas ok
    include("index.php")
    exit;
    }
    else
    { // ok
    ta page avec tout ton code
    }
    GL ^^
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 54
    Points
    54
    Par défaut
    Voici j'ai lu le tutorial
    a propos d'une variable de session

    donc faut que j'ouvre une session puis que j'enregistre ma variable

    donc pour mon exemple
    j'ouvre ma session lors de la vérification de mon mot de passe
    soit :
    page connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    session_start(); 
     
    /* si la variables $ID 
       n'existe pas alors : */ 
    if(!isset($ID)) { 
      $ID = "1"; 
      /* sauvegarde de la variable $ID 
         afin qu'elle soit connue dans 
         les autres pages */ 
      session_register("ID");  
    }
     
    // vérification de mon mot de passe
    donc après normalement je peux consulter l'état de cette variable dans n'importe quel autre page?
    puis je faire comme cela :

    page MmapId.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if ($ID=="1") {
    	require("MmapId1.php");
    }else{
    	header('Location: connexion.php?login=');
    }

  9. #9
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Euh... il me semble qu'il faut passer par $_SESSION comme indiqué ici, mais je dois avouer que je ne suis pas un pro des sessions. Je me prend généralement la tête une fois pour le mettre en place et j'y touche plus jusqu'a la fin du projet ^^
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 78
    Points : 54
    Points
    54
    Par défaut
    bon il doit y avoir un problème car j'ai recopier la version du site que tu m'a passé ça marche

    mais quand j'essaye avec ma méthode ça marche pas

    donc si vous pouviez m'aider :

    donc voici ma page de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    /* démarrage session */ 
    session_start(); 
    $_SESSION['favcolor'] = 'vert';
     
    //instruction diverse
     
    f ( $_POST['username']=="admin" && $_POST['password']=="admin" && $_POST['Type'] == "administrateur") {
    			require "index1.html";
     
    }
    else { header('Location: /connexion.php?login=');
    			}
    page index1.html

    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
     
      <?php
    require "entetemenu.html";
    ?>
      <body style="background-color: gainsboro; text-align: center; font-family: 'Comic Sans MS';">
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          <br />
          Bienvenu sur le site Administrateur    
      </body>
    </html>
    l'entetemenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div>
    	<div class="centre" style="background-color: gainsboro; text-align: center; font-family: 'Comic Sans MS';">
    		<a href="index1.html">Accueil</a>
        &nbsp;&nbsp; |
    		<a href="test.php">Map</a>  | <a href="quitter.php">Quitter</a>
    	</div>
    </div>
    test.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    echo 'Bienvenue sur la page test<br />';
    echo $_SESSION['favcolor']; // vert
     
    ?>
    malheureusement cela m'affiche rien.....

Discussions similaires

  1. Verrouiller le répertoire des pages PHP en accès pour l'explorateur Windows
    Par snaypse dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 11/06/2010, 23h02
  2. Réponses: 16
    Dernier message: 16/11/2007, 16h23
  3. Réponses: 1
    Dernier message: 20/09/2006, 00h29
  4. [Sécurité] authentification pour accès site
    Par Badaboumpanpan dans le forum Langage
    Réponses: 21
    Dernier message: 17/07/2006, 14h53
  5. [Sécurité] attente d'un evenement sur page PHP
    Par macmac dans le forum Langage
    Réponses: 10
    Dernier message: 01/12/2005, 15h01

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