Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/12/2006, 08h15   #1
Invité de passage
 
Inscription : août 2006
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 9
Points : 1
Points : 1
Par défaut [Cookies] Case à cocher "souvenez vous de moi"

Bonjour.

J'ai créé un site où les membres doivent s'identifier pour accéder à certaines fonctions.

Les utilisateurs sont stockés dans une table mysql sous forme de pseudonyme + mot de passe crypté md5.

Lorsque l'utilisateur s'identifie, apres vérification du mot de passe, deux variables de SESSION sont posées :
- une variable disant "utilisateur_connecte"
- une variable avec le pseudo de l'utilisateur.

Je voudrais rajouter un bouton "Souvenez vous de moi", tel sur le formulaire d'identification de ce forum, pour que l'utilisateur n'ait pas à taper ses identifiants à chaque fois.

Mon site n'est pas "sensible", mais n'ayant pas de connaissance dans le domaine sécurité, je ne voudrais quand meme pas laisser une grosse faille.

Je suppose que la mémorisation se fait dans un cookie dans lequel on met le pseudo de l'utilisateur, et son mot de passe crypté en md5 ?

Merci d'avance pour vos conseils.
kangourou_for_ever est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 12h37   #2
Futur Membre du Club
 
Inscription : avril 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 38
Points : 18
Points : 18
Mettre un mot de passe, même crypté, dans un cookie, est selon moi une erreur. Je sais bien que certains forum pratiquent cette méthode, mais ça reste une faille selon moi. En effet, vu que beaucoup d'utilisateurs utilisent le même mot de passe sur plusieurs site web, il suffit de récupérer cette chaine cryptée pour ensuite pouvoir s'y connecter...

Une solution serait de générer une clé aléatoire (et donc non liée au mot de passe), que tu pourrais sauvegarder à la fois dans ta table membres, et dans un cookie... A la connexion, tu vérifies la concordance des données. Le principe reste donc le même, mais reste selon moi plus sécurisé (dans la mesure ou cette clé est différente selon les sites web).
Jukien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 12h44   #3
Invité de passage
 
Inscription : juillet 2005
Messages : 10
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 10
Points : 4
Points : 4
Merci pour cet avis.
pasteque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 13h10   #4
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
Salut

l'utilisation de cookie est une bonne methode,
il suffit juste qu' a des moments aléatoire, dans ton site, tu redemandes a l'utilisateur son mot de passe,

cette pratique est utilisé par beaucoup de site web ...google, ebay, paypal, yahoo...
ensuite au moment tu cryptages de ton mot de passe dans le cookie, tu peux le couplé avec une "clef privé". (nécessaire pour un minimun de sécurité) ca rend le cookie utilisable seulement sur ton site.

sahid
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 13h14   #5
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
en tout cas évite de faire ca pour les admins.
Le fait de redemander le mot de passe ne sert à rien à mon avis, ici le problème c'est le vol de cookie (spoofing, XSS, etc)
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 16h36   #6
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
Citation:
Envoyé par Djakisback
Salut,
Le fait de redemander le mot de passe ne sert à rien à mon avis, ici le problème c'est le vol de cookie (spoofing, XSS, etc)
si tu arrives a trouver le mot de passe à partir d'un hach md5, chapeau (:
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 17h42   #7
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Que tu le cryptes ou non il me semble que le principe est le même, tu fais ta comparaison des 2 md5 (celui du client et celui de la BDD), donc si tu récupères un cookie avec un mdp même crypté, t'es censé pouvoir l'utiliser, et à aucun moment t'as besoin de le décrypter, par exemple sur un forum :

1er cas, t'envoies le pass en clair :
- md5(passClairClient) == passCryptéBDD

2e cas, en crypté :
- passCryptéClient == passCryptéBDD

Si un autre membre du forum récupère le cookie, dans le 1er comme dans le 2e il suffit qui remplace les valeurs de son propre cookie par celle qu'il a récupérées.
Dites-moi si je me trompe ^^

Paypal and compagnie, ils transitent les données en HTPPS donc le risque de vols de cookie/session est bien moindre.

En fait, si, le fait de redemander le mot de passe je pense que ca peut servir mais uniquement si tu regèneres une nouvelle clé privée, comme tu disais.
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 18h06   #8
Membre confirmé
 
Développeur Web
Inscription : septembre 2006
Messages : 215
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : septembre 2006
Messages : 215
Points : 246
Points : 246
si tu cherches à recuperer le cookie d'un utilisateur par une faille xss, je vois pas en quoi https va tant empecher ?


ensuite tu te trompes une des raisons pour laquelle dans des sites comme google ou ebay ... on redemande le mot de passe dans une zone sencible, c pour eviter le vol de cookie.
sahid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2006, 18h28   #9
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
1) Je pense pas que tu puisses récupérer un cookie de zone htpps avec JS, sinon c'est grave (au pire tu pourras pas l'utiliser sans la clé).

2) c'est justement parce qu'ils utilisent https qu'il y a un intérêt à redemander le mot de passe (sniffing).
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2006, 14h56   #10
Invité2
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
C'est possible d'avoir une explication pour faire apparaitre cette fameuse case a cocher ?^^
Ca me serait bien pratique, lourd de s'en cesse s'authentifier
  Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2006, 15h20   #11
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
quel est le point particulier qui te pose problème ?
Le principe c'est de créer un cookie avec setcookie() quand tu as authentifié l'utilisateur. Pour tester l'existence d'un cookie il suffit de faire if(isset($_COOKIE['nom_cookie'])) donc sur ta page tu peux faire :

if(isset($_COOKIE['nom_cookie'])) {
echo '<input type="text" name="log" value="'.$_COOKIE['nom_cookie'].'">';
}

Tu peux également faire un cookie pour le login et un autre pour le mot de passe ce qui acrroît un peu la sécurité (couplé à la dite clé aléatoire ca peut commencer à être pas mal).
Bye
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h18.


 
 
 
 
Partenaires

Hébergement Web