Vérifier qu'une adresse existe dans une base de donnée

  • Auteur de la discussion Auteur de la discussion gcvoiron
  • Date de début Date de début
WRInaute occasionnel
Bonjour, mon site ayant un espace membre, il arrive que des membres aie perdu leur mot de passe, j'ai donc un formulaire de "mot de passe perdu". Je voudrai envoyer un mail avec le mot de passe, seulement si l'email est présent dans la base de donnée car il arrive que des membres ne savent pas avec quelles adresses ils se sont enregistré, ce qui fait qu'il donne une adresse qui n'est pas dans la base de donnée, il reçoive donc un mail avec "Votre mot de passe est : " est c'est vide.
J'ai donc une page qui demande l'email, je voudrai faire une page qui vérifie si l'email existe, puis qui redirige soit :
->Sur une page avec comme message "Votre mot de passe vous a été envoyé par mail." et que ça envoie le message
->Où si l'email n'existe pas, que ça affiche un message "Nous n'avons aucun compte enregistré avec cet email.".
Savez-vous comment je peux faire ma page de verification? Merci.
 
WRInaute passionné
SQL
Code:
SELECT email, password from laTable WHERE email = $email

ensuite tu fait un test sur mysql_num_rows

J'en déduis donc que les mot de passe sont stockés en clair dans ta base de donnée.
[edit]
Il fallait évidemment lire mot de passe et non pas email, merdci STFprod
[/edit]
 
WRInaute occasionnel
Oui ils sont stockés en claire dans ma base de donnée.
J'utilise :
Code:
<?php
require('./prepend.inc.php');
$result = mysql_query("SELECT password FROM `demo_a_accounts` WHERE `email` = '$email3'");
$row = mysql_fetch_row($result);
$num = $row[0];

mail("$email3", "Votre mot de passe pour $seitenname", "Cher utilisateur\n \nVoici votre mot de passe Boost-Trafic\n \nVotre mot de passe est = $num\n \nL'équipe $seitenname","From: $seitenname <$emailadresse>");
?>
 
WRInaute occasionnel
spidetra a dit:
SQL
Code:
SELECT email, password from laTable WHERE email = $email

ensuite tu fait un test sur mysql_num_rows

J'en déduis donc que les emails sont stockés en clair dans ta base de donnée.
J'en déduis donc que les mots de passe sont stockés en clair dans ta base de donnée.

Normalement, on en édite un nouveau pour éviter de stocker des mots de passe en clair :-)
 
WRInaute accro
Ce qu'il veut dire, c'est que ce n'est absolument pas sécurisé de stocker le mot de passe en clair.
Si quelqu'un arrive à cracker ta base de données, il n'aura qu'à la lire pour connaitre tous les mots de passe.

Alors que en hashant les mots de passe avec sha1 ou md5, ce sera beaucoup plus sécurisé.
 
WRInaute impliqué
gcvoiron a dit:
Ok, je le ferai. Merci.

Mais attention tu ne seras plus en mesure de fournir l'ancien mot de passe par définition quelque chose crypté en md5 ne peut pas être reverse c'est à dire qu'en cas de perte d'un mot de passe il te faudra en générer un nouveau, l'envoyé a ton membre et en même temps l'enregistrer crypté dans ta base.

A+
 
Z
Zim'
Guest
spidera... pourquoi? Au moins le md5 ne peut etre décodé...

Enfin bon moi ce que j'en dis.
 
WRInaute passionné
Zim' a dit:
spidera... pourquoi? Au moins le md5 ne peut etre décodé...

Enfin bon moi ce que j'en dis.
Sha1 non plus.
http://en.wikipedia.org/wiki/SHA1

On a trouvé des collisions sur MD5, en théorie ( en théorie seulement ), le MD5 n'est plus secure.
Sha1 ou MD5, vous pensez au petit grains de sel ( cf ce forum ou le dernier tuto de kazhar )

http://en.wikipedia.org/wiki/MD5
Wikipedia a dit:
In 1996, a flaw was found with the design of MD5; while it was not a clearly fatal weakness, cryptographers began to recommend using other algorithms, such as SHA-1 (recent claims suggest that SHA-1 has been broken, however). In 2004, more serious flaws were discovered making further use of the algorithm for security purposes questionable.

C'est moi qui ai mis en gras. Faudrait même déjà passé en SHA-2 :lol:
 
Z
Zim'
Guest
Moui, merci pour ces précisions... Pour ma part, je pense que dès lors qu'on prend le temps de crypter ou hasher les mot de pass, c'est déjà une bonne démarche... Après on peux toujours mieux faire, comme dans tous les domaines.

Mais je croyais que le MD5 n'était pas décryptable... Mais seulement "cassable", contrairement au SHA1 qui est un algo de cryptage.

Bref, l'un ou l'autre je pense que pour un site lambda, c'est le minimum a faire, et que ça n'a guere d'importance.

Mais merci pour ces précisions
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut