Page 1 sur 1

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

Posté : mer. 1 juin 2016 12:04
par Rodrigue
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.

Re: Identifiant et Mot de Passe dupliqué

Posté : jeu. 2 juin 2016 09:51
par nykaula
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é.

Re: Identifiant et Mot de Passe dupliqué

Posté : dim. 5 juin 2016 18:07
par Flox
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.

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

Posté : mer. 8 juin 2016 09:15
par Rodrigue
Bonjour,

Cool, merci ^^

Cordialement.