Problème de sessions

  • Auteur de la discussion Auteur de la discussion gcvoiron
  • Date de début Date de début
WRInaute occasionnel
Bonjour, je possède un site où des membres peuvent s'enregistrer. J'ai un problème de securisation de session. Si on tape l'url "http://www.monsite.com/member/?sid=numéro", on tombe dans l'espace membre de quelqu'un, et là on voit son mot de passe, son mail... Comment sécuriser cela, pour que si l'on tape l'url, on tombe sur une nouvelle page disant par exemple que la session a éxpiré et qu'il faut se reconnecter? Merci de vos réponses.
 
WRInaute occasionnel
Merci de votre réponse, mais je n'ai pas compris :
mettre en session l'id du membre, ainsi que son mot de passe, et faire une comparaison sur chacune des pages...
Comment savoir si l'id de session est déjà crypté? Que faut-il apporter comme précision?
 
WRInaute impliqué
Et tu ne vérifie pas ?
Normallement on fait comme ça:
-en inlcude dans toutes ls pages concernées, teste si tel valeur de session est vrai par rapport à la base de donnée (concordance login/password).
-page login:
mis en session de l´id et du pass crypté, ou une valeur de test logique.
 
WRInaute occasionnel
Que dois-je vérifier? Je ne vois vraiment pas ce que je dois faire...
PS : Je ne m'y connais absolument pas en PHP.
 
WRInaute impliqué
Moi je fais ca :

Code:
session_start();

if ($_SESSION['checkHost'] != md5(SECURITY_CODE . $_SERVER['REMOTE_ADDR'] . session_id()))
{
	session_regenerate_id();
	session_unset();
	$_SESSION['checkHost'] = md5(SECURITY_CODE . $_SERVER['REMOTE_ADDR'] . session_id());
}

SECURITY_CODE est une constante du genre 'elhshds5464;'
 
WRInaute occasionnel
Merci pour le code. Je dois le placer sur toutes les pages accessibles à partir de l'espace membre? Je le met tel quel ou il faut modifier quelque chose?
 
WRInaute impliqué
bah tu le mets partout ou il y a session_start, en dessous du session_start()...

a priori ya rien a modifier, redefini seulement une constante SECURITY_CODE.

ce bout de code ne fait qu'enregistrer une variable de session checkHost unique pour chaque IP, donc si quelqu'un tente de voler le session_id de quelqu'un d'autre, sa session sera automatiquement regeneree (mais la session qu'il a essaye de voler ne sera pas affectee).

Pour bien faire, il faudrait en fait remplacer l'adresse IP par l'adresse MAC du client car la il existe toujours une possibilite de voler la session de quelqu'un mais il faut avoir la meme adresse IP (ce qui limite quand meme pas mal les choses)
 
Discussions similaires
Haut