sessions avancées

ViPHP
ViPHP | 1996 Messages

13 nov. 2009, 19:09

Mouais vu comme çà ... :D
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 115 Messages

16 nov. 2009, 09:56

OK donc un PC = 1 session, voila pourquoi ca ne marchait pas.

Existe-t-il une variable prévu pour cet effet qui soit unique (une par onglet mais que l'on puisse mémoriser) ?
Sinon je vais stocker mes valeurs dans ma BDD et les appeler/supprimer en fonction des besoins.
Quelques réalisations www.cdi-interactiv.com

Eléphant du PHP | 115 Messages

16 nov. 2009, 16:02

Bon cette fois j'ai trouvé.
Il suffit de créer à chaque exécution de la page du code qui permet de :
- créer un nombre aléatoire
- renommer le nom de la session avec ce nombre

// genere un nombre aleatoire
function make_seed()
{
	  list($usec, $sec) = explode(' ', microtime());
	  return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
$nombre_aleatoire = rand();
session_name("S".$nombre_aleatoire); // le "S" car le nom d'une session ne peut pas comporter que des chiffres
Quelques réalisations www.cdi-interactiv.com

Eléphant du PHP | 61 Messages

17 nov. 2009, 05:19

Bon cette fois j'ai trouvé.
Il suffit de créer à chaque exécution de la page du code qui permet de :
- créer un nombre aléatoire
- renommer le nom de la session avec ce nombre
cela me parait ingérable de page en page, et quel lien avec les autres ? :shock:
Un sourire pour conclure ;-)

Eléphant du PHP | 115 Messages

18 nov. 2009, 12:20

C'est pas compliqué, la valeur de chaque nombre aléatoire est envoyé dans l'url ex:
//génération de $nombre_aleatoire
session_name($nombre_aleatoire);
session_start();

$_SESSION['critere'][$nombre_aleatoire]=$_POST['critere'];
//etc...

// puis l'URL : page.php?id_session=$nombre_aleatoire
et dans la page suivante, il charge les données de la session spécifique :
$id_session=$_GET['id_session'];
session_name($id_session);
session_start();

$critere=$_SESSION['critere'][$id_session];
//etc...
Je peux donc ouvrir autant de page que je veux en parallèle, il n'y aura pas de problème.
:D
Quelques réalisations www.cdi-interactiv.com

Eléphant du PHP | 61 Messages

18 nov. 2009, 13:03

Oui OK , mais a mon gout, ce GET est pas beau entre les pages
puisque visible dans la bare d'adresse, en plus gare a la protection ! :shock:
Un sourire pour conclure ;-)

Mammouth du PHP | 985 Messages

18 nov. 2009, 13:36

Le risque est le même entre un $_POST et un $_GET.
Le risque existe dans le code qui traite une variable $_GET ou $_POST.
Une page bien codée ne présentera donc aucun risque de protection en utilisant des variables $_GET ou $_POST.

Comment?

- Utiliser par exemple des switchs.
Utiliser des valeurs par défaut dans les switchs.
http://php.net/manual/fr/control-structures.switch.php

- Filtrer, vérifier la syntaxe des éléments envoyés dans les $_GET et $_POST.

Il existe une multitude de fonctions en Php qui permettent de le faire.
Exemples:

Les ctype:
http://php.net/manual/fr/book.ctype.php

Les filters:
http://www.php.net/manual/fr/book.filter.php

Les fonctions de gestion des variables:
http://www.php.net/manual/fr/ref.var.php

Les fonctions PCRE:
http://www.php.net/manual/fr/ref.pcre.php

Donc une page correctement et normalement codée utilisant un $_GET ou un $_POST ne présente aucun risque :wink:

Pour le coté esthétique et/ou référencement, il existe l'url rewriting:
http://www.webrankinfo.com/dossiers/deb ... -rewriting
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 61 Messages

19 nov. 2009, 07:54

Oui je sais : le but c'est de le contourner ce fameux cookies. Quitte à passer par l'URL.
Je te raconte une petite histoire, moi je n'aimes pas quitter une page, alors en général si j'y trouves un lien je clic-droit
et => ouvrir dans un nouvel onglet !
Tu sais que c'est avec des "id de session d'url" GET qu'un site peut te voler ta session ? :shock:
Un sourire pour conclure ;-)

ViPHP
ViPHP | 1996 Messages

20 nov. 2009, 21:16

Oui je sais : le but c'est de le contourner ce fameux cookies. Quitte à passer par l'URL.
Je te raconte une petite histoire, moi je n'aimes pas quitter une page, alors en général si j'y trouves un lien je clic-droit
et => ouvrir dans un nouvel onglet !
Tu sais que c'est avec des "id de session d'url" GET qu'un site peut te voler ta session ? :shock:
Bonjour Christele,

Je sais qu'on peut savoir facilement d'où vient le visiteur et le fait de facilement récupérer l'identifiant dans ce cas peut permettre de fixer la session. Mais dans ce cas pour éviter les anicroches de mes visiteurs qui, par paranoïa n'ont pas activé les cookies même en mode lecture (et de ce fait ont généralement aussi bloqué javascript donc pour l'historique cela devient coton), je garde dans la session côté serveur l'ip de l'utilisateur dont j'ai attribué l'identifiant de session dans l'url. Si un malotrus vient ensuite avec l'url où figure l'identifiant de session, je vérifie l'IP et comme il est assez difficile d'avoir la même IP... (Du moins à l'état actuel de mes connaissances), je détruis la session et je récupère l'IP du malotrus au cas où...
Qu'en penses tu ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 61 Messages

21 nov. 2009, 13:00

Bonjour Christele,
je garde dans la session côté serveur l'ip de l'utilisateur dont j'ai attribué l'identifiant de session dans l'url. Si un malotrus vient ensuite avec l'url où figure l'identifiant de session, je vérifie l'IP et comme il est assez difficile d'avoir la même IP... (Du moins à l'état actuel de mes connaissances), je détruis la session et je récupère l'IP du malotrus au cas où...
Qu'en penses tu ?
pour certains (RARES) L' IP est fixe mais la grande majoritée non.
Exemple ceux qui tout bétement sont ADSL Orange comme moi, a chaque fois que je le veux je relance ma connection et me retrouves avec une autre IP !

Oui l'IP sert a rien
Un sourire pour conclure ;-)

ViPHP
ViPHP | 1996 Messages

21 nov. 2009, 15:37

D'accord avec toi mais si tu as une session ouverte sur un serveur ton adresse IP sera considérée comme fixe non ? Car si tu change d'IP en cas de reconnexion (je suis aussi chez Orange et en ce moment il y a de mauvaises connexion et donc beaucoup d'adresse IP me sont allouées), mon système t'éjectes par sécurité.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 985 Messages

21 nov. 2009, 16:37

D'accord avec toi
Mouais, moi je ne suis pas d'accord du tout :)

Car le fait d'avoir une Ip fixe ou dynamique n'a rien avoir avec le fait de comparer les Ip des ID de sessions.

D'après moi Christelle, soit tu n'as pas lu son Post, soit tu n'as pas compris son Post.
En tout cas, cela ne remet pas du tout en cause le coté sécurité de la méthode.

Ce qu'expliquait Aureusms, c'est que si quelqu'un vol et utilise l'ID de session d'une autre personne, il ne possédera pas, par-contre , la même IP et donc en vérifiant cette dernière -> Bye Bye.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 61 Messages

21 nov. 2009, 17:17

t'a rien compris, le vais te dire ce qu'il fallait comprendre
Permets moi de te demander d' appliquer a toi, les conseils que tu prodigues aux autres.
Je fais trés attention a ce que chacun écrit, sois en persuadé ! merci a toi, mais nous n'avons besoins
ni de juges, ni d'arbitres et encore moins de moralisateurs.

Donc je précises lorsque je suis sur un site en train de rédiger, et que ma connection saute, pas grave je la relance et poursuit mon travail !
cela m'arrive et jamais on m'a dit ah NON c'est plus vous l'IP a changée !
En effet les cookies de sessions sautent mais a la fermeture du navigateur, pas en cas de rupture de connection.
Un sourire pour conclure ;-)

Mammouth du PHP | 985 Messages

21 nov. 2009, 17:27

Fais moi plaisir, et corrige la fausse citation de ton Post :!:
Je n'ai jamais dit cela -> donc évite d'inventer des propos qui sortent de ton imaginaire pour argumenter tes propres propos.
Merci par avance

Sinon, cela m'arrive souvent de me tromper...

C'est un forum public, tu peux toujours discuter en pv si tu ne désires aucune intervention.

De plus, le sujet me parait important, vue le nombre de sites webs qui utilisent les sessions, et donc il me parait important d'expliquer les choses comme elles le sont...

Si ta connexion saute, c'est un autre sujet, mais cela ne remet pas en cause l'aspect sécurité.

Pour finir, la majorité des sites sérieux qui utilisent les sessions, vérifient les IP, $_GET ou pas.
Tu testeras, sur pas mal de sites, change d'IP et continues a te balader sur le site.
Tu t'apercevras que même si ils utilisent les cookies, tu seras surement déconecté...
Modifié en dernier par Dr@ke le 21 nov. 2009, 17:28, modifié 1 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 369 Messages

21 nov. 2009, 17:27

Salut,

Je m'incruste mais promis je reste pas longtemps ;)
t'a rien compris, le vais te dire ce qu'il fallait comprendre
Permets moi de te demander d' appliquer a toi, les conseils que tu prodigues aux autres.
Je fais trés attention a ce que chacun écrit, sois en persuadé ! merci a toi, mais nous n'avons besoins
ni de juges, ni d'arbitres et encore moins de moralisateurs.
+1 =D>
Donc je précises lorsque je suis sur un site en train de rédiger, et que ma connection saute, pas grave je
la relance et poursuit mon travail
! cela m'arrive et jamais on m'a dit ah NON c'est plus vous l'IP a changée !
En effet les cookies de seesions sautent mais a la fermeture du navigateur, pas en cas de rupture de connection.
Je ne peux que te donner raison. Considérer l'IP comme identifiant "absolu et réèl" serait une stratégie
suicidaire. Idem sur Orange, j'ai peur d'être chez eux aussi lol (honte à moi - joke)

@+ bon WE et bon code ;)