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] Fonctionnement des sessions si les cookies du navigateur sont désactivés [Fait]


Sujet :

Langage PHP

  1. #1
    Inscrit
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Points : 96
    Points
    96
    Par défaut [Cookies] Fonctionnement des sessions si les cookies du navigateur sont désactivés
    Bonjour,

    est ce qu'il n'y aurait pas une erreur sur ce tuto

    L'auteur dit que
    parfois le client n'accepte pas les cookies, et donc dans ces situations la session remplace parfaitement le cookie, stocke son identifiant et son mot de passe crypté pour que le membre n'ait pas à le répéter sur chaque page
    Moi j'utilise des variables de sessions et quand je désactive les cookies, mon site n'est plus fonctionnel... D'après ce que j'ai compris, la variable de session est située sur le serveur mais le client aurait besoin d'un cookie quand même pour savoir l'adresse de cette variable sur le serveur.

    Donc il me semble que contrairement à ce qui est dit, si le client désactive les cookies, la session ne marchera pas davantage que le cookie, si?

  2. #2
    Rédacteur

    Avatar de Yoteco
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2004
    Messages
    1 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 099
    Points : 2 498
    Points
    2 498
    Par défaut
    Salut,

    En effet lorsque les cookies sont activés ils sont utilisé pour stocker l'id de la session. Mais il y a un mécanisme qui fais que si les cookies ne sont pas activés l'id est passée en GET via l'URL.

    Pour plus d'info tu peux lire la doc : http://www.php.net/manual/fr/session.idpassing.php
    Blog - Mon espace developpez -
    Oracle Certified Professional, Java SE 6 Programmer
    eZ Publish Certified developer

  3. #3
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Pour qu'une session fonctionne il faut un lien entre le serveur et le navigateur du visiteur pour transmettre l'identifiant de session... Par défaut cela passe par un cookie, cependant lorsque les cookies sont désactivés l'identifiant de session peut passer par l'url c'est là qu'on voit le PHPSESSID passer dans cette url...

    Maintenant si session.use_only_cookies est à 1 dans le php.ini alors l'identifiant de session ne passera jamais dans l'url même si les cookies sont désactivés...

    http://php.developpez.com/faq/?page=...ons_confphpini et http://fr.php.net/manual/fr/session.configuration.php

    edit : grillé
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  4. #4
    Inscrit
    Inscrit en
    Février 2006
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 93
    Points : 96
    Points
    96
    Par défaut
    Je me disais en vous lisant:

    "Euh... C'est pas dangereux au niveau de la sécurité du site de faire passer l'identifiant par l'url et qu'elle soit donc visible?"

    Apparemment oui:

    session.use_only_cookies integer
    Spécifie si le module doit utiliser seulement les cookies pour stocker les identifiants de sessions du coté du navigateur. Par défaut, cette option vaut 0 (inactif, pour compatibilité ascendante). En l'activant, vous éviterez les attaques qui utilisent des identifiants de sessions dans les URL. Cette configuration a été ajoutée en PHP 4.3.0
    source: http://www.pyrenet.fr/docs/php/ini.s...y-cookies.html

    Lourd dilemme: une appli pourrait fonctionner même sans cookies donc ça parait mieux... mais si c'est pas sécurísé, il vaut mieux peut-être ne pas compter dessus...

    D'ailleurs, moi... même de manière non sécurisée, je n'arrive pas à pouvoir compter dessus: la transmission de mes identifiants sessions ne se fait visiblement pas par le biais de l'url...

    Je vérifie le phpinfo de mon site web: on me dit "session.use_only_cookies Off Off", donc vu que c'est désactivé, les variables sessions sont supposées fonctionner même si je désactive les cookies grâce comme on l'a vu à la transmission de l'identifiant de session par l'url...

    Or si je vais sur cette page en ayant préalablement désactivé le javascript et que je saisis tous les champs mais que je recopie volontairement le code du captcha de manière erronée, la page me renverra:
    Erreur: Le code saisi est erroné.
    valeur variable de session: 41a44896c41c
    Le 41a44896c41c, c'est un echo de la variable session sur laquelle repose le fonctionnement de mon captcha...

    Si maintenant je désactive en plus les cookies, je me reconnecte à la même page, je complète à nouveau tous les champs avec quelques caractères histoire que le champs ne soit pas empty, je fais volontairement une erreur en recopiant le captcha...

    et cette fois-ci la page me renvoie:
    Erreur: Le code saisi est erroné.
    valeur variable de session:
    Pourquoi cette fois-ci la variable session n'a-t-elle pas été transmise? Vu que plus haut on a vu que session.use_only_cookies est à off, la variable session aurait dû d'après ce que vous m'avez dit et ce que j'ai lu de manière complémentaire être transmise tout de même malgré la désactivation des cookies...

    Si quelqu'un a une explication à cette non transmission de variable, je suis preneur...

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2008, 12h07
  2. [Cookies] Liste des sessions en PHP
    Par buzzkaido dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2007, 15h47
  3. [Cookies] Les Sessions et les cookies
    Par naima2005 dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2006, 12h06
  4. Réponses: 3
    Dernier message: 19/10/2006, 11h45
  5. [Cookies] interaction des sessions sous asp et php
    Par boss_gama dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2006, 10h26

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