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

PHP & Base de données Discussion :

securité panneau d'admin


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut securité panneau d'admin
    Bonjour à tous,

    J'ai une erreur de notice qui apparait dès que je me suis connecté, si je fait un refresh, cette erreur disparaît :
    Notice: Undefined variable: pseudo2 ........

    (c'est au niveau de la ligne qui update l'heure et la date de connexion dans la base de donnée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //On envoiel'heure et date de connextion a la DB
    $lastLog="UPDATE users SET CONNECT='".date("Y-m-d H:i:s")."'";
    $lastLog.="WHERE PSEUDO='$pseudo2'";
    du coup j'ai un doute sur la sécurité de mon code, est-ce que quelqu'un pourrait me donner un coup de main et me dire si ce code ci-dessous est safe ?

    D'avance un grand merci et meilleures salutations


    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
     
    				if(isset($_POST['valider']))
    				{
    					if($_POST['login']!="" && $_POST['password'] != "")
    					{
    						$pseudo = htmlentities($_POST['login']);
    						$mdp    = md5($_POST['password']);
     
    						$sql = "Select ID, PSEUDO, RANG from users where PSEUDO = '".$pseudo."' and PASSWORD = '".$mdp."'";
    						$res = mysql_query($sql);
     
    						if(mysql_num_rows($res) > 0)
    						{
    							$t = mysql_fetch_array($res);
     
    							$_SESSION['connecter'] = true;
    							$_SESSION['pseudo2']    = $t['PSEUDO'];
    							$_SESSION['rang']      = $t['RANG'];
     
     
    						}
    						else
    							echo '<p><b>Le pseudo ou le mot de passe n\'est pas correct !</b>';
    					} 
    					else
    						echo '<p><b>Vous devez remplir tous les champs !</b>';
    				}
    				if(isset($_SESSION['connecter']))
    				{
    					if($_SESSION['connecter'])
    					{
    						//On envoiel'heure et date de connextion a la DB
    						$lastLog="UPDATE users SET CONNECT='".date("Y-m-d H:i:s")."'";
    						$lastLog.="WHERE PSEUDO='$pseudo2'";
     
    						$lastLog_ok=mysql_query($lastLog);
    						//Si la variable $lastLog_ok renvoie TRUE
    						if ($lastLog_ok)
    						{
    						//L'utilisateur est connecté
    						include("admin/menu_admin.php");
    						}
    					}
    				}
    				else
    				{
    					//L'utilisateur n'es pas encore concecté
    					echo '<br/><br/><center>
    							<h1>Connection</h1><br/>
    							<form method="post" action="admin.php">
    								<p>Login : 
    								<input type="text" name="login" style="margin-left:43px" /></p>
    								<p>Mot de passe :
    								<input type="password" name="password" /></p>
    								<br/>
    								<input type="submit" name="valider" value="Connexion" />
    							</form>
    						  </center>';
     
    				}
    			?>

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Pourquoi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $lastLog.="WHERE PSEUDO='$pseudo2'";
    alors que c:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $lastLog.="WHERE PSEUDO='".$pseudo2"'";
    Comme tu le fais bien ensuite

  3. #3
    Membre expérimenté

    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
    Par défaut
    Avec l'interpolation ça revient strictement au même. C'est la variable $pseudo2 qui n'existe pas et je suppose que c'est à la variable de session que vous faites référence donc il faut utiliser une variable intermédiaire ou utiliser directement cette variable de session.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lastLog.="WHERE PSEUDO='{$_SESSION['pseudo2']}";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lastLog.="WHERE PSEUDO='" . $_SESSION['pseudo2'] . "'";
    Et il serait bon de se protéger des injections SQL.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Par défaut
    oui, merci julp pour ta réponse !
    effectivement j'avais oublié de mettre cette variable de session

    En ce qui concerne le reste du code, est-il assez sûr selon vous ?

Discussions similaires

  1. activer la securité sur la console d'admin
    Par nezha_ma dans le forum Websphere
    Réponses: 1
    Dernier message: 05/03/2010, 23h18
  2. securite admin dans vista
    Par tatou001 dans le forum Sécurité
    Réponses: 5
    Dernier message: 19/04/2008, 12h18

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