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/06/2006, 10h30   #1
Invité de passage
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 1
Points : 1
Par défaut [Sécurité] Problème de session

Bonjour à tous et toutes,

Voilà j'ai un gros souci dans mes sessions.

Sous Mysql 4.1.19 / Apache 2 / php 5.0.4 / Linux Fedora 4 mes sessions fonctionnent très bien

Sous Mysql 5.0.18 / Apache 2 / php 5.1.4 / Linux Fedora 5 mes sessions sont HS

Voici mon script d'ouveture de session pour la page authentification :

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
<?
if(isset($_POST["pseudo"]) && isset($_POST["pass"]))
	{
		// Si l'utilisateur a essayer d'ouvrir une session
		$useruid = $_POST["pseudo"];
		$userpass = $_POST["pass"];
		$userpass = md5($_POST["pass"]);
 
		include "config_mysql.inc";
		mysql_select_db($dbase);
 
		$requete = "SELECT * FROM users WHERE login=('$useruid') AND pass=('$userpass')";
		$result = @mysql_query($requete);
 
		if(mysql_num_rows($result) > 0)
			{
				// Si utilisateur ok alors on enregistre la variable de session
				session_start();
 
				$_SESSION['user'] = $useruid;
				$_SESSION['last_access'] = time();
				$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
				header('Location: accueil.php?'.session_name().'='.session_id());
			}
		else
			{
				$connect = 'Mauvaise authentification';
			}
	//Fermeture de la connexion au serveur mysql
	mysql_close($connexion);
	}	
?>
Moi là ca me dépasse, alors j'imagine qu'il doit avoir une subtilité comme je n'utilise pas les même version de PHP / Mysql mais je ne la connait pas

Si une bonne âme charitable venait à se pencher sur ce petit probleme je lui en serait tres reconnaissant.
ratafia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 11h05   #2
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
si un même script fonctionne bien dans un contexte et pas dans l'autre, alors c'est probablement que le problème ne vient pas du script mais de la config du serveur.
Moi je serais toi, je me pencherais plutôt sur le php.ini

Bon, sinon à part ça :
Code :
1
2
	$userpass = $_POST["pass"];
	$userpass = md5($_POST["pass"]);
la 1ere de ces deux lignes ne sert pas à grand chose .... (strictement à rien en fait)
Code :
$requete = "SELECT * FROM users WHERE login=('$useruid') AND pass=('$userpass')";
Attention aux injections SQL !
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/06/2006, 12h07   #3
Invité de passage
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 1
Points : 1
Par défaut erf

Merci pour ta réponse. Il est vrai que concernant les injonstions sql ça ne m'avait pas sauté au nez merci encore pour cette info

Pour ce qui est de la configuration de php.ini, la partie sur la configuration des sessions est identique. Mais y aurait il une autre subtilité que je n'aurai pas vue dans le php.ini autre que la partie session ? Ou quelque chose aurait il changé entre les deux versions de php ?
ratafia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 14h09   #4
Invité de passage
 
Inscription : mai 2005
Messages : 3
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 3
Points : 3
Points : 3
Envoyer un message via MSN à abdul470
Vérifie bien que MySQL est bien lancé, et que t'as recréé les même tables...
Il peut y avoir des erreurs toutes simples.
Essaie de faire des requêtes en dur, vérifie ce que contiennent tes variables, et met des traces (echo ...) pour voir comment se déroule la connexion pas à pas, pour tester que tout fonctionnne bien.
abdul470 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 14h56   #5
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Il doit surement y avoir des petites subtilités sur le serveur. D'abord pour remédier aux SQL injections:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function quote_smart($value)
{
   // Stripslashes
   if (get_magic_quotes_gpc()) {
     $value = stripslashes($value);
   }
   // Protection si ce n'est pas un entier
   if (!is_numeric($value)) {
     $value = "'" . mysql_real_escape_string($value) . "'";
   }
   return $value;
}
Sinon quand tu dis que tes sessions sont HS, que veux tu dire?
Anduriel 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 22h05.


 
 
 
 
Partenaires

Hébergement Web