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.
Corrigé [3.1.9] Identifiant et Mot de Passe dupliqué
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 :
par
cela evitera aux utilisateurs de creer de s'enregistrer avec un Login ou un email déja utilisé.
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>';
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>';
}
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.
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é 398 fois
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/