Corrigé [3.1.9] Identifiant et Mot de Passe dupliqué

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
Avatar du membre
Rodrigue
Gsup LEVEL 1
Messages : 24
Enregistré le : jeu. 12 mars 2015 13:55

Bonjour,

Je vous fait pars d'un bug dans la base MySQL. Certain utilisateurs se retrouvent avec les identifiants et les mots de passes de techniciens. Du coup, quand un techniciens ce connecte avec ces identifiants, il n'a plus accès à ces dossiers.
Il à fallu enlevé manuellement ces informations dans la base.
Comment cela à pu ce produire ?

Merci d'avance,

Cordialement.
Rodrigue
Informaticien
Association des Maires de Meurthe-et-Moselle

GestSup : Version 3.1.7
nykaula
Gsup LEVEL 0
Messages : 2
Enregistré le : jeu. 2 juin 2016 09:44

Bonjour

il n'y a pas de controle de duplicité de compte dans le fichier register.php

tu peux rajouter ce code dans le fichier register.php
tu peux remplacer :

Code : Tout sélectionner

//crypt password md5 + salt
$salt = substr(md5(uniqid(rand(), true)), 0, 5); // Generate a random key
$_POST['password']=md5($salt . md5($_POST['password'])); // store in md5, md5 password + salt
//query
$_POST['lastname'] = strtoupper($_POST['lastname']);
$_POST['firstname'] = ucfirst($_POST['firstname']);
$db->exec ("INSERT INTO tusers (firstname,lastname,password,salt,mail,profile,login,chgpwd,company) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[password]','$salt','$_POST[mail]','$defaultprofile','$_POST[login]','0','$_POST[company]')");
//message to display
$message='<div class="alert alert-block alert-success"><center><i class="icon-ok green"></i> Votre compte à été crée avec succès.</center></div>';
									
par

Code : Tout sélectionner

$compteExiste = false;
$queryVerif = $db->query("SELECT * FROM tusers WHERE mail = '".$_POST['mail']."' or login='".$_POST['login']."'");            
while ($rowVerif = $queryVerif->fetch()) 
{
	$compteExiste = true;	
} 
if ($compteExiste==false){
   //crypt password md5 + salt
   $salt = substr(md5(uniqid(rand(), true)), 0, 5); // Generate a random key
   $_POST['password']=md5($salt . md5($_POST['password'])); // store in md5, md5 password + salt
   $_POST['lastname'] = strtoupper($_POST['lastname']);
   $_POST['firstname'] = ucfirst($_POST['firstname']);
   $db->exec ("INSERT INTO tusers (firstname,lastname,password,salt,mail,profile,login,chgpwd,company) VALUES    ('$_POST[firstname]','$_POST[lastname]','$_POST[password]','$salt','$_POST[mail]','$defaultprofile','$_POST[login]','0','$_POST[company]')");
   //message to display
   $message='<div class="alert alert-block alert-success"><center><i class="icon-ok green"></i> Votre compte à été crée avec succès.</center></div>';
}
cela evitera aux utilisateurs de creer de s'enregistrer avec un Login ou un email déja utilisé.
Avatar du membre
Flox
Administrateur du site
Messages : 9064
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

merci pour votre remonté nous avons corrigé le problème pour la version 3.1.9.

Vous pouvez dès a présent profiter de la correction en téléchargeant le fichier en pièce jointe.

Cordialement.
Fichiers joints
register.zip
(3.28 Kio) Téléchargé 310 fois
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.58 | MariaDB: 11.3.2 | PHP: 8.3.6 | https://doc.gestsup.fr/
Avatar du membre
Rodrigue
Gsup LEVEL 1
Messages : 24
Enregistré le : jeu. 12 mars 2015 13:55

Bonjour,

Cool, merci ^^

Cordialement.
Rodrigue
Informaticien
Association des Maires de Meurthe-et-Moselle

GestSup : Version 3.1.7
Répondre