Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2011, 10h43   #1
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 11h23   #2
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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 ?
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2011, 22h13   #3
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 16h00   #4
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
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 ?
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 12h19   #5
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2011, 21h08   #6
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
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).
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h21   #7
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2011, 10h50   #8
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
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).
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 13h51   #9
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
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.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/09/2011, 18h50   #10
Nouveau Membre du Club
 
Inscription : juillet 2011
Messages : 36
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 36
Points : 27
Points : 27
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.
Doonge est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h21.


 
 
 
 
Partenaires

Hébergement Web