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

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

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

Message le Lun Juin 05, 2006 21:59

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.

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Lun Juin 05, 2006 22:08

SQL
Code: Tout sélectionner
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]
Dernière édition par spidetra le Mar Juin 06, 2006 10:35, édité 1 fois.

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Lun Juin 05, 2006 22:10

Oui ils sont stockés en claire dans ma base de donnée.
J'utilise :
Code: Tout sélectionner
<?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>");
?>


STFprod
WRInaute impliqué
WRInaute impliqué
 
Messages: 627
Inscription: 14 Jan 2004

Message le Lun Juin 05, 2006 23:20

spidetra a écrit:SQL
Code: Tout sélectionner
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 :-)

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Lun Juin 05, 2006 23:46

Les mots se passes sont aussi stockés en claire.
Normalement, on en édite un nouveau pour éviter de stocker des mots de passe en clair

Je n'ai pas compris ce que ça voulais dire...

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Mar Juin 06, 2006 6:44

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é.

gcvoiron
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 494
Inscription: 19 Oct 2005

Message le Mar Juin 06, 2006 6:51

sha1 ou md5,

Ok, je le ferai. Merci.


f_trt
WRInaute impliqué
WRInaute impliqué
 
Messages: 928
Inscription: 17 Sep 2005

Message le Mar Juin 06, 2006 6:59

gcvoiron a écrit:
sha1 ou md5,

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+

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Mar Juin 06, 2006 10:18

ili faut préférer le md5 au sha1 :)

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Mar Juin 06, 2006 10:45

Zim' a écrit:ili faut préférer le md5 au sha1 :)


il faur préférer SHA1 à MD5 :wink:

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Mar Juin 06, 2006 18:40

spidera... pourquoi? Au moins le md5 ne peut etre décodé...

Enfin bon moi ce que j'en dis.

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Mar Juin 06, 2006 18:46

Zim' a écrit: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 écrit: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:

Zim'
WRInaute impliqué
WRInaute impliqué
 
Messages: 804
Inscription: 27 Avr 2006

Message le Mer Juin 07, 2006 17:05

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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités