Bonjour à tous
Je viens de "découvrir" un bug assez bizarre dans un script php, et je l'ai résolu sans trop comprendre pourquoi ^^
Peut être quelqu'un pourra-t-il m'expliquer ?
Voici le problème :
fichier config.php
Code :
- $pass_commande_admin = 'hohoho';
|
fichier index.php (avec include config.php bien entendu )
Code :
- ....
- if (!isset($_SESSION['pass_commande_admin']) && (!empty($_POST['pass_commande_admin']) || !empty($_POST['sha1_pass'])))
- {
- if(!empty($_POST['sha1_pass'])) $pass = trim(htmlentities($_POST['sha1_pass'], ENT_QUOTES));
- elseif(!empty($_POST['pass_commande_admin'])) $pass = sha1('86e2829f444976040f6f743866df12ccsssccvxccf9198c82d1c'.trim($_POST['pass_commande_admin']).'86e2829f44497ddd6040f6f743866d12f9198c82d1c');
- if ($pass == sha1('86e2829f444976040f6f743866df12ccsssccvxccf9198c82d1c'.$pass_commande_admin.'86e2829f44497ddd6040f6f743866d12f9198c82d1c'))
- {
- $_SESSION['pass_commande_admin'] = $pass;
- header('location:admin_index.php?mod=gestion_commande');
- }
- else header('location:admin_index.php?mod=verif_commande');
- }
|
Et quand j'affiche $_SESSION['pass_commande_admin'], il m'affiche le contenu de $pass_commande_admin....... soit le mot de passe en clair, au lieu d'être crypté en sha1...
C'est normal ça ??
Une fois le $pass_commande_admin changé en $pass_gestion_admin dans le fichier config (en gros juste le nom change, j'ai suspecté que le problème venait de la variable de session qui portait le même nom), plus aucun problème... La variable $_SESSION['pass_commande_admin'] affiche alors bien le mot de passe en crypté...
Une suggestion ?
Le principe du script :
Un utilisateur envoie son mot de passe par un formulaire. Le mot de passe est directement codé en sha1 par l'intermédiaire d'un javascript placé en onSubmit.
On a donc a la sortie du formulaire les variables suivantes :
- $_POST['pass_commande_admin'] qui contient le mot de passe en clair.
- $_POST['sha1_pass'] qui contient le mot de passe crypté en sha1 par javascript.
- $pass qui crypte le mot de passe en sha1 si l'utilisateur a désactivé javascript, ou alors récupere juste le $_POST['sha1_pass'] dans le cas contraire.
- $pass_command_admin qui contient le mot de passe de référence (config.php) en clair.
Merci d'avance à celui qui aura le courage de dénouer pour moi ce mystère de "bug"
Message édité par Mister_Pingouin76 le 08-07-2007 à 13:10:23
---------------
Goldbarre [Gains:23] | Eurobarre [Gains:18]