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é] Problème reconnaissance session


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut [Sécurité] Problème reconnaissance session
    Bonsoir,
    je suis en train de créer un site et depuis ce soir j'ai un petit problème. Lorsque je me connecte sur mon site, ensuite je voudrais qu'il reconnaise que je suis connecté donc j'ai mi :

    <?php
    session_start();
    if(!isset($_SESSION['login'])) {
    include ("login.html");
    }
    else {
    echo "Bonjour <strong>$login</strong>";}
    ?>

    Et il doit y avoir un problème...

    En espérant avoir été assez clair.
    Merci à tous !

  2. #2
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    Quel erreur as-tu?

    Je te conseille d'utiliser header('Location: tapage.php') pour rediriger l'utilisateur plutot que include().

    Et utilise $_SESSION['login'] plutot que login dans ton echo.

  3. #3
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    le problème est que tu as oublié la balise code
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut
    Et ben en fait,
    il faut être loggué pour poouvoir accéder à certaines pages,
    donc avant chaque page "protégée" j'ai mis le script suivi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?
    session_start();
    if(!isset($_SESSION['login'])) {
      echo 'une phrase';
      include('login.html');
      exit;
    }
    ?>
    Et pour se connecter j'ai celui-ci :
    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
     
    <?
    mysql_connect("****", "***", "***"); 
    mysql_select_db("***"); 
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
      extract($_POST);
      $sql = "select pwd from tbl_user where login='".$login."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
     
      if($data['pwd'] != $pass) {
        echo '<p>Mauvais nom d\'utilisateur / mot de passe. Merci de recommencer</p>';
        include('login.html'); 
        exit;
      }
      else {
        session_start();
        $_SESSION['login'] = $login;
        echo '<br><br><br>Vous êtes dès à présent connecté';
      }    
    }
    else {
      echo 'Vous avez oublié de remplir un champ.</p>';
       include('login.html');
       exit;
    }
    ?>
    J'espère que vous aurez compris

  5. #5
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    !!!!
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    tu sembles utiliser les globals_vars :
    C'est PAS BIEN DU TOUT (failles de sécurité !)
    tu utilises $_POST, $_SESSION, etc...
    utilise-les tout le temps
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Citation Envoyé par Swoög
    tu sembles utiliser les globals_vars :
    C'est PAS BIEN DU TOUT (failles de sécurité !)
    tu utilises $_POST, $_SESSION, etc...
    utilise-les tout le temps
    Oui, sans vouloir troler le post, qu'appeles-tu une globals_vars et surtout qu'elle est cette faille de sécurité ?

    **edit** Réponse de Swoög en même temps...

  8. #8
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par psychoBob
    Oui, sans vouloir troler le post, qu'appeles-tu une globals_vars et surtout qu'elle est cette faille de sécurité ?
    expliqué plus haut
    **Mort de Rire** on supprime nos cross-post ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut
    désolé pour les balise c'est rajouté

    ralalala , je n'ai jamais utilisé les globals_vars.
    Mais bon mon niveau me fait défaut lol.

    Mais en plus ce matin tout marchait correctement, j'ai faire quelque chose de pas bien

  10. #10
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    les globals_vars, c'est une configuration qui fait que le contenu de $_POST, $_GET, etc... pase automatiquement dans l'espace des variables courantes ($_POST['champ'] accessible directement via $champ, etc...)

    le problème est qu'il suffit alors de faire passer une variable en GET pour qu'elle soit injecter dans le code, c'est donc TRES risqué

    il vaut mieux utiliser les tableaux super globaux ($_POST, $_GET, $_SESSION, etc...) et faire attention à toujours initialiser ses variables...
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Citation Envoyé par Swoög
    les globals_vars, c'est une configuration qui fait que le contenu de $_POST, $_GET, etc... pase automatiquement dans l'espace des variables courantes ($_POST['champ'] accessible directement via $champ, etc...)

    le problème est qu'il suffit alors de faire passer une variable en GET pour qu'elle soit injecter dans le code, c'est donc TRES risqué

    il vaut mieux utiliser les tableaux super globaux ($_POST, $_GET, $_SESSION, etc...) et faire attention à toujours initialiser ses variables...
    Ceci dit, si tu filtres toutes les variables avec htmlspecialchars et surtout mysql_real_escape_string, il me semble que cela supprime les risques inhérents à une variable injectée sournoisement. Ai-je tort ? Ai-je raison ? Hum... seul l'avenir nous le dira.

  12. #12
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par psychoBob
    Ceci dit, si tu filtres toutes les variables avec htmlspecialchars et surtout mysql_real_escape_string, il me semble que cela supprime les risques inhérents à une variable injectée sournoisement. Ai-je tort ? Ai-je raison ? Hum... seul l'avenir nous le dira.
    tort, tu parles ici d'injections SQL ou HTML...

    alors qu'avec les globals vars, il s'agit carrément de modifier la valeur d'une variable qu'on crois être de session, de cookie, d'environnement, etc....
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 33
    Par défaut
    Merci de votre aide,
    le problème est résolu.

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Par défaut
    Citation Envoyé par Swoög
    tort, tu parles ici d'injections SQL ou HTML...

    alors qu'avec les globals vars, il s'agit carrément de modifier la valeur d'une variable qu'on crois être de session, de cookie, d'environnement, etc....
    Oui mais bon, qu'est ce qu'il peut en faire le pirate, de sa variable avec une valeur modifiée ? Tant qu'il ne peut pas y glisser une requete sql ou un script php, puisqu'ils sont désactivés par les fonctions citées plus haut, ça va lui servir à quoi ?

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

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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