IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] Passage de variables en GET


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Points : 24
    Points
    24
    Par défaut [Cookies] Passage de variables en GET
    Bonjour,

    Je développe depuis un petit temps en php, sur le windows de mon boulot (easy php) avant de transferer sur mon compte free.

    Comme je commence à developper franchement pour mon plaisir, j'ai voulu passer sur mon ordinateur personnel, un MAC.
    En cherchant sur le net, j'ai trouvé un package : MAMP (MAC Apache MySQL PHP) qui est sensé être très bien et tout.

    Je copie donc mes pages php et fais mes premier tests. Rien ne marche.
    Je finis par découvrir que les variables passées dans la barre d'adresse du navigateur (methode GET) ne sont pas initialisées :

    Code de test.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if (!isset($var)) echo "La variable var n'est pas initialisée";
    else echo "var = $var";
    ?>
    appel de la page : "test.php?var=toto"
    résultat affiché : "La variable var n'est pas initialisée"

    Ca doit être une variable d'apache ou de php qui est mal configurée, mais je n'ai aucune idée de laquelle.

    (je n'ai pas mon mac sous la main pour vous faire une copie du résultat de phpinfo(), mais je vais la faire rapidement. Indiquez moi si vous souhaitez une autre interrogation)

    Merci pour vos suggetions.

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Ton PHP est sans doute configuré en mode Safe et donc le register_global à OFF (enfin je crois que c'est ca)

    En tout cas, ca donne que tes variables ne sont pas accessible directement mais par l'intermédiaire de variable superglobale (voir la doc de PHP la-dessus)

    Bref, tes variables passées en GET :
    sont disponible comme ceci :
    Et pour les variables passées en POST : $_POST, etc...

    C'est un mode plus sécurisé, les variables étant encapsulée selon leur origine, elles ne se mélangent pas...

    Si tu ne veux pas refaire tous tes script, regarde ton fichier php.ini, il doit y avoir quelque part "register_global = off", le changer à "on"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    Bien vu !!

    En effet, la variable register_global est à off. J'aurais pu m'en souvenir, c'est la deuxième fois que ca m'arrive grrr.
    Je vais la mettre à On, puisque c'est ainsi qu'elle est réglée sur mon compte free.

    Ceci dit, si j'ai bien compris, register_global = off permet plus de sécurité puisque l'on sépare bien les variables provenant de GET ou de POST.
    Mais cela soulève un autre question :

    Dans la configuration register_global=on, que ce passe-t-il si une même variable est passée, avec deux valeurs différente, une en GET et l'autre en POST?
    la logique (de sécurité) voudrait que la valeur passée en POST soit prioritaire, puisque l'utilisateur peut toujours passer des variables GET en les indiquant dans la barre d'adresse...

    Merci encore pour la réactivité.

    Sincèrement, Caille Rotie.

  4. #4
    Membre régulier
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 76
    Points
    76
    Par défaut
    Dans le fichier php.ini toujours il y a un paramètre (variables_order) qui permet de gérer la priorité lorsque l'on est en register_global à ON :

    Chaque lettre correspondant aux différentes sources :
    E = Environnement
    P = Post
    G = Get
    S = Session
    C = Cookie

    Plus d'infos ici :

    http://fr.php.net/manual/fr/ini.core.php#ini.variables-order

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Points : 24
    Points
    24
    Par défaut
    Super.

    Merci encore.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 278
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par Caille Rotie
    la logique (de sécurité) voudrait que la valeur passée en POST soit prioritaire, puisque l'utilisateur peut toujours passer des variables GET en les indiquant dans la barre d'adresse...
    Dans la réalité, les variables POST ne sont pas plus sécurisées que les variables GET, car l'utilisateur peut aussi les modifier. Par exemple en faisant un formulaire sur son propre site qui pointe vers ta page d'action, et en mettant ce qu'il veut dans les POST, même (et surtout) dans les champs hidden.
    Conclusion : quelle que soit la méthode employée, il faut toujours valider une donnée transmise par l'utilisateur comme s'il était un pirate en train d'essayer de hacker ton site.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] passage de variables de session
    Par Le fut dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 15h11
  2. Webservices et passage de variable en GET dans l'URL
    Par SuperCed dans le forum Dynamique
    Réponses: 2
    Dernier message: 12/01/2007, 17h24
  3. [Sécurité] Passage de variable en GET
    Par meda dans le forum Langage
    Réponses: 10
    Dernier message: 01/03/2006, 14h31
  4. [Cookies] passage de variable d'une page a l'autre
    Par BernardT dans le forum Langage
    Réponses: 1
    Dernier message: 15/11/2005, 01h50
  5. [Cookies] passage de variable vbs à php
    Par Sheraf dans le forum Langage
    Réponses: 4
    Dernier message: 25/10/2005, 23h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo