AJAX et sessions
Résolu/Fermé
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
-
9 juil. 2008 à 14:50
N-ectron - 3 mai 2012 à 23:24
N-ectron - 3 mai 2012 à 23:24
A voir également:
- Php session ajax
- Alert php ✓ - Forum PHP
- Easy php - Télécharger - Divers Web & Internet
- Session expirée facebook piratage ✓ - Forum Facebook
- Estelle vient de verrouiller sa session d'ordinateur. que peut-on dire ? - Forum Windows
- Session invalide ou obsolète - Forum Consommation & Internet
13 réponses
Nabla's
Messages postés
18203
Date d'inscription
mercredi 4 juin 2008
Statut
Contributeur
Dernière intervention
28 avril 2014
3 192
9 juil. 2008 à 15:22
9 juil. 2008 à 15:22
bon, pour l instant j ai fait ca dans la page du formulaire, bien sur la session est ouverte en debut de page et on n accede a cette page que si on est dans une sessuiin utilisateur:
xhr_object.open("POST", "ajax.php?PHPSESSID=<?php echo $_COOKIE['PHPSESSID']; ?>", false);
donc je recupère l identifiant session....
et dans le fichier ajax.php je fais ca:
<?php
session_start();
if (isset($_SESSION['login']))
{
}
?>
et ca marche....
donc on peut a priori sur ma configuration (wamp 2.0) utiliser dans une URL une session qui a été crée sur un cookie.... c est pour moi une grosse faille de sécurité du PHP, mais ca m arrange bien ;)
doncm si vous faites de l ecoute reseau sur qqcn qui est connecté snas connection securisé (meme si le mot de passe a été passé en mode sécurisé), alors vous pouvez lui piquer l identifiant de sa session avec wireshark par exemple, et l ajouter dans l URL du site.... et hop, vous squattez sa session....
si vous avez une meilleur solution pour faire passer la sessionm notement ecrire des parametres aditionels dans l entete de la requete envoyée par ajax, je suis preneur!!! je préfererai envoyer la session par les entetes....
xhr_object.open("POST", "ajax.php?PHPSESSID=<?php echo $_COOKIE['PHPSESSID']; ?>", false);
donc je recupère l identifiant session....
et dans le fichier ajax.php je fais ca:
<?php
session_start();
if (isset($_SESSION['login']))
{
}
?>
et ca marche....
donc on peut a priori sur ma configuration (wamp 2.0) utiliser dans une URL une session qui a été crée sur un cookie.... c est pour moi une grosse faille de sécurité du PHP, mais ca m arrange bien ;)
doncm si vous faites de l ecoute reseau sur qqcn qui est connecté snas connection securisé (meme si le mot de passe a été passé en mode sécurisé), alors vous pouvez lui piquer l identifiant de sa session avec wireshark par exemple, et l ajouter dans l URL du site.... et hop, vous squattez sa session....
si vous avez une meilleur solution pour faire passer la sessionm notement ecrire des parametres aditionels dans l entete de la requete envoyée par ajax, je suis preneur!!! je préfererai envoyer la session par les entetes....
9 juil. 2008 à 16:23
Bizarre,
je n'ai jamais eu ce soucis: les variables de SESSION du serveur correspondaient bien --> mes cookie étaient bien transmis...
essaie après ton open:
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
:)
et autre chose:
xhr_object.open("POST", "ajax.php?PHPSESSID=<?php echo $_COOKIE['PHPSESSID']; ?>", false);
pourquoi pas true? : en asynchrone c'est bien plus pratique pour le client: il peut naviguer en attendant la réponse du serveur.
une derniére chose :p
Tu peux te créer une variable
var data= "PHPSESSID=<?php echo $_COOKIE['PHPSESSID']?>& etc... ;
et faire
xhr_object.open("POST", "ajax.php",false);
xhr_object.send(data);
je ne my connait pas plus que ça, ca revient surement au même.
9 juil. 2008 à 16:44
alors pour le mode synchrone / asynchrone, il faut que je refase un essai, mais au debut ou je m en servais, j arrivais pas a le faire marcher en asynchrone, donc je suis passé a autre chose comme ca marchait en synchrone.... mais je croi savoir d ouvenait mon pb ;)
le xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
en fait je suis trop bete, j avais pas vue que j utilisait dans une autre page.... mais je te remercie de me l avori redonné
en revanche, pour le
var data= "PHPSESSID=<?php echo $_COOKIE['PHPSESSID']?>& etc... ;
xhr_object.open("POST", "ajax.php",false);
xhr_object.send(data);
ca ne peux pas marcher. la session doit etre passée en GET ou en cookie, pas en POST (enfin, j en ai jamais entendu parler, et j ai rien vu s y raportant dans la doc de php). et j envoie d autres choses en post, ét vu que je fais un peu mon traitement a la bourin, il faudrai que je fasse gaffe a ce parametter ...
D autant plus que si PHP ne le gère pas en natif (le cookie de session passé en post), ca me sert a rien de le recevoir! il faudrai que je le traite a la main, il faudrai réecrir le session_open(), donc nonm pas la bonne solition.
bonne solution:
xhr_object.setRequestHeader("Cookie", "<?php echo $_COOKIE['PHPSESSID']?>");
voila.. si qqcn a un probleme de session avec ses cookies ...