Récuperer (et non pas charger) une session à partir de l'id de session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récuperer (et non pas charger) une session à partir de l'id de session

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par MarYas » 11 janv. 2024, 04:48

Je dirais pareil que la plus part des réponses je doute qu'il soit possible de récupérer les datas d'une autre session sachant que le but d'une session est d'être une session pas 2 ni 10 et de pouvoir justement travaillé les données de la session ouverte çà serait porte ouverte au hacking gratuit de plus et comme dit plus haut tu as un gros probléme de conception si tel est le cas dans un site à aucun moment tu dois avoir besoin et n'a besoin de data d'une autre session.
Chaque utilisateur à ses propres données cela voudrait dire que n'importe quel utilisateur aurait accés au données d'autre utilisateur connécté ? Aucun sens ...

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par @rthur » 06 déc. 2023, 17:10

Je ne sais pas ce que tu essayes de faire et je ne connais pas les contraintes de ton application, mais il faut tout de même signaler que si tu dois aller lire des infos dans des sessions d'autres utilisateurs, c'est probablement que tu as un souci dans la conception/l'architecture de ton applicatif, car les sessions ne sont pas faites pour cet usage.

S'il y a des données d'autres utilisateurs qui doivent être consultables, il faut les rattacher à mon sens à ces utilisateurs dans une BDD proprement avec un identifiant unique, et pas un ID de session temporaire.

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par waxwdi » 06 déc. 2023, 15:25

Merci à tous pour les différentes pistes

Comme ça tournera dans un environnement Symfony, je vais voir s'il y a des classes et services qui apportent des solutions et au pire, je vais en effet, faire ainsi, charger la nouvelle session, lancer les traitements qui vont bien et rétablir la session d'origine

Encore merci

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par Saian » 06 déc. 2023, 13:58

Re, ça me semble un peu bourrin mais c'est un proof of concept qui a l'air de bien fonctionner sans rien casser.
function readSession(string $sessionId): array
{
    $originalSessionId = session_id();
    session_write_close();

    session_id($sessionId);
    session_start();

    $session = $_SESSION;
    session_write_close();

    session_id($originalSessionId);
    session_start();

    return $session;
}

PS : si tu trouves une solution qui correspond à toutes tes exigences je serais curieux de savoir comment tu as fait.

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par @rthur » 06 déc. 2023, 13:10

Peut-être une piste :
https://www.php.net/manual/fr/sessionha ... e.read.php

A noter que cette méthode est normalement pour un usage interne à PHP, je ne sais pas dans quelle mesure ça pourrait être utilisé dans un script maison.

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par Saian » 06 déc. 2023, 13:01

Dans ce cas à part basculer sur l'autre session puis revenir à la session originale, pas sûr qu'il y ait de solution. Et pas sûr qu'il n'y ait pas de perte de données sans avoir testé.

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par waxwdi » 06 déc. 2023, 12:51

Salut, la comme ça sans trop réfléchir, j'irai directement lire le contenu du fichier de session en question.
Merci pour ta réponse
J'y avais pensé aussi mais j'espere pouvoir passer par le gestionnaire de session de PHP afin de ne pas me poser la question de la gestion. C'est à dire ne pas avoir besoin de gérer l'expiration, ne pas devoir changer le code si on décide de passer les sessions en base ou Redis par exemple etc etc

Avoir donc un acces plus haut niveau et bénéficier de la mécanique en place

Re: Récuperer (et non pas charger) une session à partir de l'id de session

par Saian » 06 déc. 2023, 12:33

Salut, la comme ça sans trop réfléchir, j'irai directement lire le contenu du fichier de session en question. Un simple session_decode d'un file_get_contents devrait suffire.

Récuperer (et non pas charger) une session à partir de l'id de session

par waxwdi » 06 déc. 2023, 11:52

Bonjour,

J'ai besoin de lire les données d'une session à partir de l'ID de session
Je parle bien de récupérer les données de la session concernée (array équivalent à $_SESSION) et non pas de changer la session en remplacement de la session courante

Par exemple, j'ai ma session courante, j'utilise mes propres données de session (lecture/ecriture) mais à coté, sans changer ma session courante, j'ai besoin d'avoir un array contenant les données d'une autre session XXXXX

Auriez vous des pistes ?
Merci