Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2007, 18h48   #1
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 135
Points : 14
Points : 14
Par défaut [Sécurité] Variables de sessions : probléme au rafraîchissement

Bonjour,
je débute avce les variables de sessions et j'ai un probléme de sécurité de base.
En effet :

dés que je veux rafraichir mon indexa.php ( ma page qui nécessite une identification ) alors que je suis bien loggé avec les bonnes variables, il va me refusé l'accés car au raffrachissement il a echangé les variables de sessions avec un autre utilisateur de la table.



voici mon code de login :
Code :
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
64
65
66
67
68
69
70
71
 
<?
 
 
//require('logout.php');
// On écrase le tableau de session
// s'il y une session on l'ecrase
session_start();
 
if(isset($_SESSION['login'])  ) {
 
 
$_SESSION = array();
 
// On détruit la session
session_destroy();
 
}
require('connexion.php');
 
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['mdp'])) {
 $login = $_POST['login'];
 $mdp = $_POST['mdp'];
 
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select * from Membres where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $data = mysql_fetch_assoc($req);
 
  $droits = $data['droits'];
 
 
 
  if  ($data['mdp'] != $mdp) { //||  ( empty($data) ) )  {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
 
 
    require('index.php'); // On inclut le formulaire d'identification
   exit;
  }
 else {
 
	if ( strcmp($droits,"admin") == 0 )
	{
 
		echo 'Vous etes bien logue en admin ';
		?><meta http-equiv="refresh" content="0;URL=indexa.php"><?
 
	}
	else 
		{
 
		echo 'Vous etes logue en normal';
			?><meta http-equiv="refresh" content="0;URL=indexuser.php"><?
		}
 
 
 
 
 
  }   
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   require('index.php'); // On inclut le formulaire d'identification
   exit;
}
 
 
?>
et ma page qui pose probleme (indexa.php ):

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?
 
session_start();
 
if ( strcmp ($droits,"admin) != 0 )
{
 echo " erreur vous n'avez pas les droits ";
}
// et la si j'affiche mes variables de sessions $_SESSION['droits']; et $_SESSION['id']; elle se sont transformé en un autre utilisateur ( j'ai vidé mon cache et essayé sur une autre machine avec le même resultat ) 
?>
Merci a vous
bonjour69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 19h17   #2
Membre éclairé
 
Inscription : août 2006
Messages : 379
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : août 2006
Messages : 379
Points : 383
Points : 383
Bonjour,

Voici un petit peu d'aide sur ce sujet
Citation:
Envoyé par julp
Attention : les fonctions session_register, session_unregister, session_is_registered et session_unset sont dépréciées. Il convient donc de les remplacer :
Code :
1
2
3
4
5
6
$var = 'foo';
session_register('var');
 
# devient
 
$_SESSION['var'] = 'foo';
Code :
1
2
3
4
5
if (session_is_registered('var')) {
 
# devient
 
if (isset($_SESSION['var'])) {
Code :
1
2
3
4
5
session_unset('var');
 
# devient
 
unset($_SESSION['var']);
Pour de plus amples informations, voir le tutoriel dédié aux sessions.


Julp.
P.s : tu peux aussi utiliser le module de recherche
SpiritOfDoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 20h46   #3
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 135
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 135
Points : 14
Points : 14
Par défaut d'accord mais..

Rebonjour,

d'accord j'ai en effet pratiqué cela mais le probléme est juste lié au fait que ma déclaration $_SESSION['droits'] = $mavariable_contenant_le_droit;
n'est apparemment pas conservé lors du raffraichissement de la page, ce qui est trés bizarre :/

Merci
bonjour69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h38.


 
 
 
 
Partenaires

Hébergement Web