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 :

Variable de session qui change aléatoirement [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut Variable de session qui change aléatoirement
    Bonjour,

    J'ai un Captcha sur un formulaire, la valeur est enregistrée en session, lorsque le formulaire est soumis, on compare le string entré avec la valeur en session. Si ça correspond tout est ok.

    Ce systeme de captcha (le mien) est celui que j'utilise sur Tous mes formulaires de contact. Tous mes sites (ou presque) sont sur le même serveur (le mien). Register_globals est à OFF.

    Le captcha vous pouvez le tester ici :
    http://www.n1bus.fr/contacter-n1bus-...s-informations
    il fonctionne normalement. Jamais eu de probleme.

    Il se trouve qu'il ne fonctionne pas sur un site.
    Vous pouvez le tester ici :
    http://www.parapharmaonline.fr/

    Cliquez sur un produit et remplissez le formulaire "Envoyer à un ami"
    Inmanquablement, la réponse du serveur sera "Le code de sécurité que vous avez entré n'est pas valide."

    En bas de la page, sous l'offre spéciale, j'ai laissé en texte brut la valeur que vous deviez entrer / la valeur avec laquelle elle a été comparée.
    Sur le serveur distant (en prod) , ces deux valeurs ne correspondent jamais.

    Sur mon serveur en local, ces valeurs correspondent DE TEMPS EN TEMPS !

    Je ne sais pas pourquoi.
    Cela n'a rien a voir avec le produit sélectionné ou l'adresse email entrée ou je ne sais quoi ...

    • J'ai changé mes noms de variables en pensant avoir employé un "nouveau" mot réservé.
    • J'ai revérifié tous mes includes en pensant inclure un fichier local alors que j'utilisais le site distant
    • J'ai verifié les session_start(), les noms de session, etc
    • J'ai fait un var_dump des variables de session pour vérifier ce qui s'enregistrait

    Pour l'instant j'ai retiré le captcha du formulaire de contact, j'ai laissé celui-ci pour essayer de trouver pourquoi il ne fonctionne plus.
    Je précise que le captcha a fonctionné et qu'il ne fonctionne plus depuis quelques temps.

    Le vrai problème, c'est qu'il fonctionne aléatoirement en local et plus du tout sur le serveur distant.

    Si quelqu'un a une idée, une piste, un truc ... ce serait bien sympa.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Je viens de m'apercevoir que ce phénomène ne se produit pas sur Firefox (dernière version). Le captcha fonctionne normalement.

    Il semblerait donc que cela vienne de IE8.
    Quelqu'un aurait il une piste ?

  3. #3
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Je mets la soluce au cas où ça se produirait pour quelqu'un d'autre.

    Alors, en faisant une multitudes de tests, je me suis aperçu que mon script de captcha modifiait tout seul et aléatoirement le code à déchiffrer qui est stocké en session (utilisation mcrypt).

    Donc lorsqu'on affiche le formulaire, on a un code qui est stocké en session (chiffré) , mais lorsqu'on execute le formulaire, on ne peut pas comparer le code avec celui en session, car il a changé !


    Je me suis aperçu que mon script était appelé une fois de trop.
    je m'explique : si le captcha comporte 5 caractères, le script était appelé une 6 eme fois.

    Je me suis aperçu que la page ne pouvait pas afficher le favicon.ico a cause d'une mauvaise url du fichier. Ceci produit une requete supplémentaire vers mon script et ça change la valeur stockée en session car il manque des paramètres lors de l'appel du script.

    J'ai corrigé l'url du favicon.ico et je n'ai plus d'appel supplémentaire au script. Donc la valeur en session ne change pas.


    Bon, je sais, c'est un peu tordu, mais ..... cerise sur le togâ : ceci ne se produit qu'avec Internet explorer (8.xx / pas testé avec 9.xx)

    Merci Micromou.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    Pourquoi appeler plusieurs fois un script quand il y a plusieurs caractères ?
    C'est pas mieux de tout analyser d'une traite ?

    Cela éveille ma curiosité.


    J'ai également l'impression que tu génères des caractères aléatoires même quand il n'y a pas de capcha (car le nombre de fois que tu charges qqchose = modifie le "token").
    Un capcha c'est pas comme un token qu'on crée sur demande d'une page particulière ?

  5. #5
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Citation Envoyé par Doonge Voir le message
    Pourquoi appeler plusieurs fois un script quand il y a plusieurs caractères ?
    C'est pas mieux de tout analyser d'une traite ?

    Cela éveille ma curiosité.


    J'ai également l'impression que tu génères des caractères aléatoires même quand il n'y a pas de capcha (car le nombre de fois que tu charges qqchose = modifie le "token").
    Un capcha c'est pas comme un token qu'on crée sur demande d'une page particulière ?
    Car je crée une image (GD) pour afficher 1 caractère.
    Si le code contient 6 caractères, le script est appellé autant de fois.
    En fait le nombre de caractère est aléatoire.

    Le script que j'utilise actuellement est une version améliorée de ceux que j'avais fait il y a un moment :

    http://softwares.n1bus.eu/n1bus-soft...bus-crypt-form

    http://softwares.n1bus.eu/n1bus-soft...1bus-sure-form

    Tu peux les télécharger.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    Je pense que tu pourrais sans trop de soucis améliorer ta fonction qui crée une image de façon à ce qu'elle accepte un string et pas un caractère unique.


    J'ai aussi un truc perso pr les formulaires, je vais jeter un oeil (le capcha m'intéresse pas des masses même si je vois que c'est remarquablement bien "brouillé" et lisible à la fois => good job).

  7. #7
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Citation Envoyé par Doonge Voir le message
    Je pense que tu pourrais sans trop de soucis améliorer ta fonction qui crée une image de façon à ce qu'elle accepte un string et pas un caractère unique.
    C'est justement ce que je voulais pas faire (comme tout le monde).
    En plus ça oblige les "scanners" à lire plusieurs images pour retrouver le code, alors que si le code est dans une seule image, il suffira au scanner de déchiffrer un seule image CQFD.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    Est-ce réellement un degré de difficulté supplémentaire pour les scanners ?

    J'en doute fort.

    Mais bon, si tu veux préfère lettre par lettre, c'est ton choix, et ça ne m'intéresse guère comme sujet de discussion.

    J'ai jeté un oeil au script pour les formulaires, l'idée de donner des noms aléatoires est intéressante pour les champs de formulaire de type unique (inscription par exemple).

    Si on voulait pousser le vice, on pourrait également ajouter des champs 'classiques' mais cachés par le css. Les bots n'utilisant pas css (il me semble) les rempliraient d'office (puisque les variables des champs seraient login et password par exemple), et nous on saurait direct que ce sont des tentatives de bot.



    Le problème de ton code c'est qu'il n'est pas vraiment compatible avec un quelconque script avancé qui gèrerait déjà les formulaires ou globalement les sorties HTML (vu que le script impose des sorties html et un typage formulaire).

  9. #9
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Citation Envoyé par Doonge Voir le message
    Est-ce réellement un degré de difficulté supplémentaire pour les scanners ?

    J'en doute fort.

    Mais bon, si tu veux préfère lettre par lettre, c'est ton choix, et ça ne m'intéresse guère comme sujet de discussion.
    Bon, ben si ça t'interresse pas c'est pas la peine de lancer la polémique. Je te propose de faire ton propre script et d'arreter de pourrir la discussion qui portait au départ sur un probleme de session et qui de toute façon est résolue.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 36
    Par défaut
    Je voulais savoir pourquoi tu avais choisi de faire un script qui fait une image par lettre, parce que je pense que c'est curieux.

    Tu ne me donnes pas de raison particulière, sinon que c'est un choix personnel qui n'apporte aucun avantage particulier sinon de la satisfaction personnelle.
    C'est très bien.


    Je ne suis pas intéressé par ta satisfaction personnelle (j'imagine que tu peux le comprendre), donc j'ai préféré couper court, mais si tu avais eu des éléments à partager, cela m'aurait vivement intéressé.

    Donc il me semble que pour moi, j'ai bien fait de "lancer la polémique", je voulais savoir s'il y avait une raison intellectuellement intéressante à la particularité de ton script (tu dis toi-même que tu es le seul à faire comme ça, tu n'aimes pas faire comme tout le monde).


    Je te pose une question parce que je m'intéresse à ton code ...



    Tu es un modérateur, et c'est vrai qu'on dévie ce thread (c'est un peu gros à dire quand même, tu as résolu ton problème tout seul et on est les deux seuls participants ici, c'est comme une discussion à deux ...). Je te fais remarquer que tu peux te contenter de le signaler plutôt que me descendre en disant que je "pourris le thread" ou que je "lance une polémique".

    J'ai déjà fait mon propre script, c'est exactement pour ça que j'étais intéressé par la particularité du tien.

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

Discussions similaires

  1. Une variable de session qui change
    Par zsoh dans le forum Langage
    Réponses: 5
    Dernier message: 02/09/2007, 21h03
  2. Variable de session qui change toute seule
    Par mijean dans le forum Langage
    Réponses: 5
    Dernier message: 21/05/2007, 15h42
  3. variables de session qui ne passent pas
    Par cels dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 28/11/2006, 11h46
  4. Variables de session qui se vident !
    Par navona dans le forum Langage
    Réponses: 13
    Dernier message: 24/05/2006, 23h39
  5. Réponses: 4
    Dernier message: 13/03/2006, 12h29

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