Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1514 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Petit éclaircicement sur les variables de session & CO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit éclaircicement sur les variables de session & CO

n°1172707
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 17:48:00  profilanswer
 

Salut tout le monde
 
Bon j'ai regardé tous ce qui avait été posté avant moi sur ce sujet..dans le forum...
 
Mais j'ai pas trouvé réponses à mes questions :heink:  
Bon j'ai fait un systéme de Session car mon site, pourra accepter plusieurs personnes.
 
j'ai donc fait tous le nécessaires pour ça:
session_start()...
 
puis je chope session_id() et session_name();
que j'associe est ballance en GET
 
Je pense que jusque là c'est bon!
Mais voilà une fois, sur une page de la partie protégé, je ne suis pas sur du test à faire:
 
Car pour l'instant je fait un truc du style:
if(!isset($_GET['NOMSESSION']))
    redirection vers page principal de l'admin et message d'erreur qui va avec.
 
Mais le probléme c'est qu'avec cette méthode...le gars qui tape dans l'url adresse?NOMSESSION=nimportequoi
 
Sa passe...
Donc je pense que mon test est foireux...si on peu m'éclaircir sur le sujet...je vous en remerci
 
++ :hello:

mood
Publicité
Posté le 08-08-2005 à 17:48:00  profilanswer
 

n°1172742
TiDUS62
Posté le 08-08-2005 à 18:27:08  profilanswer
 

essaye de ne pas le passer en get pour des sections privées : ca peut s'averer dangereux
si ta des infos a faire passer et que tu souhaite que personne ne les voit utilise $_POST
 

n°1172747
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 18:33:35  profilanswer
 

Lol rigolo tu es...
 
Et comment je fais pour les pages sans formaulaire...
Nop...il y a pas de risque par GET,
si la condition est bonne...
 
Car la var est dépendante de ou tu te connectes...

n°1172755
Masenko
Posté le 08-08-2005 à 18:40:42  profilanswer
 

Je te déconseille $_GET pour les informations persos.
Perso j'utilise seulement pour la navigation genre.
?module=Forums
?module=Forums&act=write&forum_id=54
 
A part ça les informations sur l'utilisateur sont enrengistré dans la session.
session_start();
 
Par défault si l'utilisateur n'est pas connecté via le formulaire d'indentification il aura ça.
$_SESSION['connected'] = 0;
$_SESSION['pseudo']      = 'Invite';
 
Un utilisateur connecté aura des informations rempli via un formulaire $_POST et on verifiera qu'elle corresponde bien avec la base de donnée sinon bien sur ça enrengistre pas et ça laisse comme si l'utilisateur n'était pas connecté.
 
$_SESSION['connected'] = 1;
$_SESSION['pseudo']      = $_POST['pseudo'];
$_SESSION... d'autres infos genre l'id, groupe etc...

n°1172789
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 19:23:40  profilanswer
 

Mais si pas de formulaire sa fonctionne pas?

n°1172819
gatsusat
Posté le 08-08-2005 à 20:26:55  profilanswer
 

ben le GET c'est tout ce qui est dans l'url ou passé en GET par formulaire
et le POST c'est tout ce qui est passé par le formulaire.
 
Après à toi de voir ce qui te convient le mieux

n°1172825
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 20:39:57  profilanswer
 

Mais sa je l'ai fait...
 
et sa marche nickel...non ce que je veux savoir
c'est quoi faire dans un fichier qui recoit cet variable...
 
if(!isset($_GET['NOMSESSION']))
    redirection vers page principal de l'admin et message d'erreur qui va avec.  
Ce n'est pas suffisant...

n°1172830
Masenko
Posté le 08-08-2005 à 20:49:14  profilanswer
 

Bah c'est pas comme ça que ça fonctionne.
Le $_GET c'est pas un formulaire de vérification a part si tu veux avoir des url de 40km de long et même c'est pas fais pour.

n°1172834
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 20:56:33  profilanswer
 

Sur que non, dans ton exemple sans POST je suis foutu...et je sais que c'est pas vrai.
 
Pas grave pour l'url de 100 m de long, c'est la partie admin.
Mais logiquement une Session expire aprés un certain moment...et elle est en correspondance avec le systéme d'ou tu te logue...
 
Donc logiquement en marquant n'importe quoi dans le GET sa devrai pas marcher...
 
Mais moi j'y arrive pas à faire ça...
 
Vous voyez de quoi je parle quand même (ouais pas fait la faute)
 
....

n°1172842
Masenko
Posté le 08-08-2005 à 21:17:57  profilanswer
 

les sessions c'est très securisé.
Il y a que 3 manière de se logger sur la session de quelqun.
 
1. Pirater le serveur pour voir la session sur le dd.
2. Faille dans PHP
2. Faille dans ton code et récuperer la session.
 
Ensuite tu te log sur la session en faisant http://....?session=LASESSION
 
Perso je trouve ça suffisament securisé...
 
 
 
Enfin j'ai compris ce que tu veux dire mais la session n'expire pas tant que tu es actif.
Et au pire tu peux faire un cookie qui recrée la session si elle expire si l'utilisateur a demandé qu on ce souvienne de lui a chaque visite.
 
Maintenant je vais te donner un exemple tout bête d'une section admin.
 

Code :
  1. <?php
  2. $LOGIN = 'Test';
  3. $PASSWORD = md5('Pass');
  4. if ( !isset($_POST['Connexion']) )
  5. {
  6. echo '
  7. <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  8. Login : <input type="text" name="login" size="20" /><br />
  9. Password : <input type="pass" name="password" size="20" /><br />
  10. <input type="submit" name="Connexion" value="Connexion" />
  11. </form>
  12. ';
  13. }
  14. else
  15. {
  16. if ( $LOGIN == $_POST['login'] && $PASSWORD == md5($_POST['password']) )
  17. {
  18.   echo 'Auhentification OK, tu peux afficher ta zone d\'admin ici';
  19. }
  20. else
  21. {
  22.   echo 'Connexion Refusé';
  23. }
  24. }
  25. ?>


Message édité par Masenko le 08-08-2005 à 21:18:30
mood
Publicité
Posté le 08-08-2005 à 21:17:57  profilanswer
 

n°1172850
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 21:40:04  profilanswer
 

Oui dacord mais ton exemple ne marche que sur une page?
 
Non...
une fois passé ça, si je tape un url qui se trouve aprés cette page, comment la page de cet url vérifie que je viens de ce test ou de quelque part d'autre.
 
Bien sur je sais que une fois connecté, si tu ne quitte pas ta fenêtre ou que tu n'est pas partie par un truc du style déconnexion, qui détruit les variables, et ben tu garde accés au module.
 
Non moi mon probléme c'est quand un gars viens de l'exterieur direct sur un lien à l'intérieur de la zone protégé.
 
Bien sur j'ai fait en sorte que si il tape le lien sans la bonne variable, il est rejeté, mais si il tape le nom de la variable, il rentre, quelques qoit la valeur de la variable.
 
Comment empêcher cela.

n°1172851
Masenko
Posté le 08-08-2005 à 21:44:32  profilanswer
 

Ouais en faite je viens de me rendre compte que j'avais simplement fait un formulaire de connexion là.
Je refais et je te montre.
Voilà donc dans cette exemple si l'utilisateur tappes dans le formulaire login : Test et password : Pass il sera sur la zone d'admin car ce sera enrengistré dans la session comme quoi si admin = 1 alors il a acces a la zone d'admin.
 

Code :
  1. <?php
  2. session_start();
  3. if ( $_SESSION['admin'] != 1 )
  4. {
  5. $LOGIN = 'Test';
  6. $PASSWORD = md5('Pass');
  7. if ( !isset($_POST['Connexion']) )
  8. {
  9.   echo '
  10.   <form method="post" action="'.$_SERVER['PHP_SELF'].'">
  11.   Login : <input type="text" name="login" size="20" /><br />
  12.   Password : <input type="pass" name="password" size="20" /><br />
  13.   <input type="submit" name="Connexion" value="Connexion" />
  14.   </form>
  15.   ';
  16. }
  17. else
  18. {
  19.   if ( $LOGIN == $_POST['login'] && $PASSWORD == md5($_POST['password']) )
  20.   {
  21.    $_SESSION['admin'] = 1;
  22.    header("Location: ".$_SERVER['PHP_SELF']."" );
  23.    exit();
  24.   }
  25.   else
  26.   {
  27.    echo 'Connexion Refusé';
  28.   }
  29. }
  30. }
  31. else
  32. {
  33. echo 'Wha! Ma zone d\'admin est magnifique';
  34. }
  35. ?>

n°1172856
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 21:58:10  profilanswer
 

$_SESSION['admin']
il se ballade dans toutes mes pages?
 
Parce que là ton truc m'avance pas plus , non?

n°1172857
Masenko
Posté le 08-08-2005 à 22:07:35  profilanswer
 

Oui il se ballade partout tant que au dessus de chaque page il est simplement écrit session_start();
 
C'est enrengistré dans ta session que admin est égal à 1 sur le serveur.
 
Pour que tu sois plus eclairé voilà le contenu de ta session lorsque tu as passé le formulaire avec succès :
admin|i:1;
 
Pi tu peux bien voir que tu as beau actualisé ta page après le formulaire et si t'as bien mis les infos t'as ça non stop "Wha! Ma zone d'admin est magnifique".
 
Si tu supprimes la session ou alors si tu en recrées une autre tu auras de nouveau le formulaire

n°1172859
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 22:11:01  profilanswer
 

bon vais retester ton truc adapté à mon truc.

n°1172860
xtof_83
Freeride Spirit
Posté le 08-08-2005 à 22:19:34  profilanswer
 

Merci d'avoir usé de ton temps avec moi,
sa marche.
 
Au plaisir...

n°1172862
Masenko
Posté le 08-08-2005 à 22:25:33  profilanswer
 

De rien, bonne continuation dans ton truc et si t'as besoin d'aide la notification par mail est activé :pt1cable:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Petit éclaircicement sur les variables de session & CO

 

Sujets relatifs
petit problemetransformer nom de variables
Récupérer le nom de session windows du client dans un réseau localProblème de session et objets .....
Petit probleme de liens pour mon album photoune session auteur personnalisée
Piratage : sécurisation variables de sessions[C++] petit pb de seg. fault
probleme de sessionpetit probleme script de menu deroulant
Plus de sujets relatifs à : Petit éclaircicement sur les variables de session & CO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR