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 13/02/2006, 08h36   #1
Invité de passage
 
Inscription : février 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 14
Points : 3
Points : 3
Par défaut [Sécurité] SESSION et sous-domaine

Bonjour,

J'aimerai pouvoir récupérer ma session dans un site possédant plusieurs sous-domaine.
Exemple : http://www.site.com , http://toto.site.com et encore http://tata.site.com

J'ai lu qu'il n'existait pas d'autre moyen que d'envoyer la session dans l'url. Ca ne m'arrange pas beaucoup car je n'arrive pas à stocker ma session_id dans un cookie.

Connaissez vous une autre méthode pour récupérer ma session ? J'utilise PHP 5.

Cordialement,

Kael
Kael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 09h10   #2
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
Je n'ai jamais rencontré ton problème (en tant qu'amateur je n'ai pas de sous domaine ;-) )
mais eventuellement dans une variable de type $_POST,
il faut envoyer un header pour cela.
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h03   #3
Invité de passage
 
Inscription : février 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 14
Points : 3
Points : 3
C'est impossible, premièrement car je stocke des logins / mot de passes et puis car on acces d'un domaine à l'autre par des <a href>.
Kael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h07   #4
Membre confirmé
 
Avatar de Wormus
 
Inscription : septembre 2005
Messages : 259
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 259
Points : 207
Points : 207
C'est une méthode que j'éviterai car elles ne sont pas faite pour ça mais tu peux toujours utiliser t'as base de données
Wormus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h10   #5
Membre éclairé
 
Inscription : décembre 2004
Messages : 658
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 658
Points : 317
Points : 317
Citation:
Envoyé par Kael
C'est impossible, premièrement car je stocke des logins / mot de passes et puis car on acces d'un domaine à l'autre par des <a href>.
et ca t'empeche de faire un simple bouton a la place de ton lien avec tout en type hidden?
zulot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h34   #6
Nouveau Membre du Club
 
Inscription : décembre 2005
Messages : 31
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 31
Points : 30
Points : 30
Citation:
Envoyé par zulot
Citation:
Envoyé par Kael
C'est impossible, premièrement car je stocke des logins / mot de passes et puis car on acces d'un domaine à l'autre par des <a href>.
et ca t'empeche de faire un simple bouton a la place de ton lien avec tout en type hidden?
on peut faire passer un formulaire avec un lien, avec js
LarZuK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h41   #7
Invité de passage
 
Inscription : février 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 14
Points : 3
Points : 3
Wormus: J'ai pensé à cette possibilité d'utiliser la BDD. Mais j'imagine des gens dans un réseau local (même IP public) surfant sur mon site. Comment je pourrai les distinguer ? Si tu as une solution je la veux bien, ca m'interresse vraiment.

zulot: Parce que la plupart de mes liens sont derrieres des photos et que je ne suis pas trop pour cacher un mot de passe derriere un hidden (visible dans le code généré).
Kael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 10h55   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Kael : une image peut servir de bouton d'envoi de formulaire.
Code :
<input type="image" src="___">
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 11h47   #9
Invité de passage
 
Inscription : février 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 14
Points : 3
Points : 3
Je ne le savais pas mais ca ne change pas mon problème car j'ai besoin de sécuriser mes données. Je ne pense pas qu'avec javascript je pourrai les masquer. Je vais vous expliquer plus précisément.

Dans la page d'accueil (www.site.com) on doit pouvoir se logguer et visiter les autres sites (qui sont dans des sous-domaines, forum.site.com ou toto.site.com) en étant logguer. De plus dans les sous-domaines, nous devons pouvoir se logguer et visiter les autres sites. Pour exemple, un utilisateur se logg dans forum.site.com puis decide en modifiant manuellement l'url (!!!), de visiter toto.site.com. Dans ce cas là, il est impossible de garder les données car, javascript ou bouton hidden, les données ne seront pas transférer.
Les sessions ne sont pas valides d'un sous-domaine à un autre. Tout comme (je pense après mes multiples essais) les cookies.

Il se pose à moi deux choix :
_ Trouver un moyen de garder l'id de session (session_id()). Je ne vois pas comment et je m'en reporte à vous,

_ Stocker dans la base de données le fait que mon user s'est bien connecté. Mais dans ce cas je ne sais pas comment je pourrai être sur que l'user est bien cet user. Exemple : Deux postes dans un réseau local se connecte à mon site. Ils ont donc la même adresse IP publique. Comment les différencier ? J'aurai penser à stocker l'adresse mac mais je ne pense pas que ce soit possible vu que ce n'est pas un intranet. Peut etre en récupérant également l'adresse IP privé ? Je ne connais pas la procédure. Si vous avez un bout de code me permettant donc de récupérer l'adresse publique ET l'adresse privée je suis preneur.

Je vous remercie tout de même pour vos réponses.
Kael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 14h08   #10
Rédacteur/Modérateur
 
Avatar de marcha
 
Homme Marc Chappuis
Développeur Web
Inscription : décembre 2003
Messages : 1 535
Détails du profil
Informations personnelles :
Nom : Homme Marc Chappuis
Âge : 41
Localisation : Suisse

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2003
Messages : 1 535
Points : 2 206
Points : 2 206
Salut,

J'ai une petite idée pour résoudre ton problème, mais j'ai jamais testé :-)

Imaginons que ton user se soit logué sur www.site.com, il a donc un cookie de session sur www.site.com

Maintenant il clique sur un lien qui le mène sur toto.site.com, par
exemple: toto.site.com/truc.php, et la, pas de cookie.

dans truc.php, tu crée une session, mais celle-ci est neuve, car pas de
cookie, si la session est vide alors tu redirige sur:
www.site.com/login.php?from=toto.site.com/truc.php

Code :
1
2
3
 
header("Location: http://www.site.com/login.php?from=toto.site.com/truc.php");
exit;
Ta page login.php étant sur www.site.com reçoit le cookie de la première session, mais en plus elle reçoit le paramètre from=...

Tu programmes ta page login.php pour qu'elle fasse les opérations suivantes dans ce cas:

1) tu sauve en session le parametre from
2) tu sérialise le tableau $_SESSION (voir serialize)
3) sauver les données serialisée dans ta db
4) rediriger ton navigateur sur toto.site.com/autolog.php?id=...

id correspondrait à la clé de l'enregistrement dans ta db

dans autolog.php tu fait:

1) session_start
2) charger les donnée de l'enregistrement id de ta db
3) copie dans $_SESSION des donnée après déserialisation
4) redirection à l'url sauvé dans "from"

Je sais pas si il y a une technique plus simple, mais ça devrait marcher.
marcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 14h15   #11
Membre régulier
 
Inscription : avril 2005
Messages : 82
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 82
Points : 73
Points : 73
Envoyer un message via MSN à hebus73
sinon tu peux qd mem créer un formulaire et l'envoyé avec un champ hidden mais crypté par exemple en md5
hebus73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/02/2006, 14h31   #12
Invité de passage
 
Inscription : février 2005
Messages : 14
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 14
Points : 3
Points : 3
Merci à vous mais j'ai finalement décidé d'abandonner la connexion dans les sous domaines. Toutes les solutions posent plus ou moins des problèmes de sécurité ou sont difficilement réalisable à cause de mon architecture (mais merci Mercha).
Kael est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h37.


 
 
 
 
Partenaires

Hébergement Web