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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Les variables de session magiques...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Les variables de session magiques...

n°520162
spark
Luc ?
Posté le 22-09-2003 à 04:16:25  profilanswer
 

Bonjour,
 
On va prendre un exemple tout con
 
deux fichiers:
 
test1.php

<? session_start();
 
 $_SESSION['user_id'] = "123";
?>
 
<a href="test2.php?user_id=BahViCaAChange">Page2</a>


 
et son copain test2.php

<?
 session_start();
 
 echo "La valeur avant le GET est : ".$_SESSION['user_id']."<br />";
 $user_id = $_GET['user_id'];
 
 echo "La valeur apres le GET est: ".$_SESSION['user_id']."<br />";
?>


 
Et on obtient le résultat suivant quand on clique sur le lien de test1.php
 

La valeur avant le GET est : 123
La valeur apres le GET est: BahViCaAChange


 
Vu que je touche par à $_SESSION['user_id'], qqn pourrait m'expliquer pourquoi ma variable de session magique est modifée ? :D
 
Comment empêcher celà ?

mood
Publicité
Posté le 22-09-2003 à 04:16:25  profilanswer
 

n°520163
gatorette
Posté le 22-09-2003 à 04:29:05  profilanswer
 

Je ne suis pas un pro de PHP, mais es-tu sûr que dans la config de PHP, tu n'as pas register_globals a true. Si c'est le cas, ton $user_id référence directement $_SESSION['user_id'], d'où ton erreur.


---------------
each day I don't die is cheating
n°520164
the real m​oins moins
Posté le 22-09-2003 à 04:30:36  profilanswer
 

verifie dans ton php.ini que "register_globals" est bien à Off
si c'est pas le cas, met le à off.
 

Citation :

; Whether or not to register the EGPCS variables as global variables.  You may
; want to turn this off if you don't want to clutter your scripts' global scope
; with user data.  This makes most sense when coupled with track_vars - in which
; case you can access all of the GPC variables through the $HTTP_*_VARS[],
; variables.
;
; You should do your best to write your scripts so that they do not require
; register_globals to be on;  Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = Off



---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°520165
the real m​oins moins
Posté le 22-09-2003 à 04:31:08  profilanswer
 

tiens c'est pas à jour la doc dans ce fichier [:meganne]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°520166
the real m​oins moins
Posté le 22-09-2003 à 04:31:57  profilanswer
 

en fait tu peux simplement faire un phpinfo() et tu verras ton register_globals ;)
(des fois que t'aurais pas le serveur sous la main)
 
 
(dans la section Configuration - PHP Core, la 2e si je ne m'abuse)
 
 
edit: comment jme fais griller, j'ai rien vu  :kaola:  
ça m'apprendra a vouloir détailler ma reponse :D


Message édité par the real moins moins le 22-09-2003 à 04:33:32

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°520167
spark
Luc ?
Posté le 22-09-2003 à 04:34:39  profilanswer
 

Je viens de modifier le fichier ini sur ma machine (easyphp)
et ca fonctionne correctement, merci :D
 
Seulement, je ne sais pas si chez mon futur hébergeur cette option sera à Off...
 
J'ai essayé avec un ini_set(), mais ca a pas l'air de marcher, je retente pour voir...

n°520168
spark
Luc ?
Posté le 22-09-2003 à 04:38:25  profilanswer
 

Voilà, ca marche nickel.  
Le register_globals est à On dans mon .ini
 
et le fichier test2.php a la tete suivante:

ini_set("register_globals", "Off" );
 session_start();
 
 echo "La valeur avant le GET est : ".$_SESSION['user_id']."<br />";
 $user_id = $_GET['user_id'];
 
 echo "La valeur apres le GET est: ".$_SESSION['user_id']."<br />";


Et ca marche nickel
 
J'avais pas mis le ini_set() avant le session_start(), c'est pour ca que ca marchait pas.
Merci pour votre aide :)

n°520169
spark
Luc ?
Posté le 22-09-2003 à 04:39:02  profilanswer
 

gatorette a écrit :

Je ne suis pas un pro de PHP, mais es-tu sûr que dans la config de PHP, tu n'as pas register_globals a true. Si c'est le cas, ton $user_id référence directement $_SESSION['user_id'], d'où ton erreur.


Merci, grace à toi j'ai compris pourquoi ca faisait ca :)

n°520170
gatorette
Posté le 22-09-2003 à 04:42:13  profilanswer
 

the real moins moins a écrit :


edit: comment jme fais griller, j'ai rien vu  :kaola:  
ça m'apprendra a vouloir détailler ma reponse :D


 

Spark a écrit :

Merci, grace à toi j'ai compris pourquoi ca faisait ca :)


 
 :na:


---------------
each day I don't die is cheating
n°520171
spark
Luc ?
Posté le 22-09-2003 à 04:43:13  profilanswer
 

:D

mood
Publicité
Posté le 22-09-2003 à 04:43:13  profilanswer
 

n°520172
the real m​oins moins
Posté le 22-09-2003 à 04:45:20  profilanswer
 

:o
 
spark >> depuis quelques versions de php, cette option est à off par defaut. tu peux de toutes façons faire comme tu l'as fait, pour etre sur ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°520174
spark
Luc ?
Posté le 22-09-2003 à 04:47:31  profilanswer
 

Oki, merci :)
C'est quand même cool d'avoir de l'aide à presque 5h du mat :D

n°520175
the real m​oins moins
Posté le 22-09-2003 à 04:48:50  profilanswer
 

oui je m'en étonne moi aussi  :pt1cable:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°520191
aspegic500​mg
Posté le 22-09-2003 à 07:34:34  profilanswer
 

Donc avec les variables globales à ON ca fait un sacré trou de secu, imaginons qu'une fois une personne loguée sur le site, on enregistre une variable de sessin $login, quelqu'un de malintentioné pourrait tres bien taper page-reservee.php?login=UnNomDeMembreConnu et ainsi acceder aux données reservées ?? :ouch:  
 
Parce que chez mon hebergeur les variables globales sont encore à On à cause de chieurs qui utilisent des scripts tout fait qui reclament le On :sarcastic:  
 
Le iniset on m'en a parlé mais je ne sais plus la syntaxe exacte pour mettre les variables globales à off (possible uniquement si le safe_mode est sur Off ;) )

n°520199
gatorette
Posté le 22-09-2003 à 08:26:46  profilanswer
 

aspegic500mg a écrit :

Donc avec les variables globales à ON ca fait un sacré trou de secu, imaginons qu'une fois une personne loguée sur le site, on enregistre une variable de sessin $login, quelqu'un de malintentioné pourrait tres bien taper page-reservee.php?login=UnNomDeMembreConnu et ainsi acceder aux données reservées ?? :ouch:


C'est à toi de bien gérer dans ton script en n'utilisant pas de variable nommée $login et en accédant toujours à l'information au travers de $_SESSION['login']. On peut même imaginer que si isset( $_GET['login'] ); alors tu affiches un message méchant...
 

aspegic500mg a écrit :

Parce que chez mon hebergeur les variables globales sont encore à On à cause de chieurs qui utilisent des scripts tout fait qui reclament le On :sarcastic:  
Le iniset on m'en a parlé mais je ne sais plus la syntaxe exacte pour mettre les variables globales à off (possible uniquement si le safe_mode est sur Off ;) )


Tu as un exemple juste au dessus. J'ose imaginer qu'il est correct.


---------------
each day I don't die is cheating
n°520201
aspegic500​mg
Posté le 22-09-2003 à 08:33:31  profilanswer
 

gatorette a écrit :


C'est à toi de bien gérer dans ton script en n'utilisant pas de variable nommée $login et en accédant toujours à l'information au travers de $_SESSION['login']. On peut même imaginer que si isset( $_GET['login'] ); alors tu affiches un message méchant...


 
J'utilise toujours les variables $_SESSION['login'], mais un simple blabla.php?login=CeQuOnVeut permet de changer la valeur de $_get mais pas de $_session (var globales à off ou on), j'avais pas vu dans le bout de script qu'il avait mis ;)


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

  [PHP] Les variables de session magiques...

 

Sujets relatifs
[PHP] session_register avec une variable "élaborée",syntaxe[PHP -> Cookies/Supression]
[PHP] uri aléatoire dans du texte[PHP]Fonction avec array
[PHP] manipulation de variables,Variables environnement + VBS
Editeur fichier PHP pour modif fichier d'un forum[PHP][Jpgraph] Need Help pour faire des arrondis de courbe
Plus de sujets relatifs à : [PHP] Les variables de session magiques...


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