Comment fonctionne la case à cocher" Se souvenir de mon mot de passe"?
il y a de nombreux formulaires de connexion avec la petite case à cocher "Se souvenir de mon mot de passe" de sorte que la prochaine fois que vous visitez le site web, le navigateur remplit automatiquement le champ Mot de passe pour vous.
mais j'ai remarqué un comportement dans les navigateurs modernes, tels que Chrome/Firefox, qui affiche une barre de notification pour enregistrer le nom d'utilisateur/passoword même si cette page Web particulière n'a pas de case à cocher "remember password".
donc mes questions sont:
- si je dois cocher la case" Se souvenir du mot de passe " dans un formulaire d'ouverture de session, Que dois-je faire lorsque l'utilisateur le vérifie? Je veux dire, dois-je stocker le mot de passe dans les cookies du navigateur (ou le stockage Local)? Dans l'affirmative, le mot de passe devrait-il être chiffré ou en clair?
- la barre de notification" Enregistrer le mot de passe " est une fonctionnalité du navigateur ou y a-t-il un moyen de l'invoquer à partir de la page web?
6 réponses
vous devez sauvegarder un cookie côté client, crypté bien sûr. maintenant avec HTML5 je vous recommande D'utiliser le stockage Local j'utilise ce jstorage plugin
la partie" enregistrer le mot de passe " vient du gestionnaire de mot de passe du navigateur chaque fois qu'il voit un <input type="password">
on dirait qu'il demande vraiment un mot de passe. Vous pouvez utiliser l'attribut autocomplete pour supprimer ce dans la plupart des navigateurs:
<input type="password" name="password" autocomplete="off">
ceci ne validera pas mais cela n'a généralement pas d'importance.
la partie" se souvenir de moi " est complètement séparée du gestionnaire de mot de passe du navigateur. Le drapeau" remember me " est l'affaire du serveur et tout ce qu'il fait c'est jouer avec le la date d'expiration du cookie qu'il renvoie. Le serveur renvoie toujours un cookie (à moins qu'ils n'utilisent pas de cookies pour suivre les sessions mais c'est rare et n'aurait pas besoin d'un "se souvenir de moi" de toute façon) avec quelque chose à l'intérieur pour identifier l'utilisateur client.
si vous cochez "remember me" alors vous dites au serveur que vous voulez une session persistante. Pour ce faire, le serveur inclura une date d'expiration avec le cookie et cette date d'expiration sera dans le futur. Lorsque la date arrive, le navigateur expirera et supprimera le cookie; sans le cookie, le serveur ne saura plus qui vous êtes et vous devrez vous connecter à nouveau.
si vous ne cochez pas" remember me", vous obtiendrez un cookie de session. Les cookies de Session n'ont pas de date d'expiration sur eux donc expirent automatiquement lorsque le navigateur sort. Les cookies de Session sont utiles pour les machines partagées.
résumé:
- "Enregistrer le mot de passe" est à partir du mot de passe du navigateur gestionnaire.
- "Remember me" concerne l'expiration du cookie de connexion.
Désolé d'être si longue haleine, mais il semble y avoir une certaine confusion et un manque de clarté dans les autres réponses.
Question 1:
l'id de session est stocké dans le cookie. AFAIK, le mot de passe, ou le hachage de celui-ci n'est pas stocké. Une session est créée du côté du serveur chaque fois que vous vous connectez. Si vous vous êtes connecté avec "Remember Me" coché, le serveur passe un cookie avec l'id de session (ou l'id de session crypté, ou quelque chose qui identifie uniquement la session de l'utilisateur) et ce cookie est enregistré du côté du client.
Lorsque vous vous connectez pour la prochaine fois, le serveur vérifie s'il y a un cookie avec la session, si elle est là (et que la session n'a pas été tuée/expirée - voir point 2 ci-dessous), alors le serveur vous identifie comme "Veera" et vous permet d'accéder au site.de nombreux sites Web offrent une option de "déconnexion toutes les sessions" (comme Gmail: voir le bas de la fenêtre). Cela invaliderait toutes les sessions associées à l'utilisateur.
Question 2:
Mémoriser le mot de passe est une fonctionnalité offerte par navigateur. Le navigateur voit s'il y a un <input type=password>
sur la page et invite à sauvegarder ce mot de passe pour vous. <input type=password>
déclencherait.
la différence entre le serveur qui se souvient de vous et le navigateur qui se souvient de votre mot de passe est de savoir si votre mot de passe est enregistré ou non. Et combiné avec l'option "déconnexion toutes les sessions" c'est beaucoup mieux que de laisser le navigateur d'enregistrer votre mot de passe.
Vous aurez besoin d'un moyen de savoir qui est l'utilisateur. Normalement, cela se fait en sauvegardant un cookie sur le navigateur de l'utilisateur. Vous ne devez utiliser que quelque chose qui n'est pas facilement mystifié et donc le cryptage devrait être utilisé. Vous utiliser le stockage local, aussi longtemps que vous êtes certain que tous les navigateurs qui seront utilisés sur votre site soutenir.
Non, il n'y en a pas. Avoir un champ password est normalement ce qui déclenche la barre.
- Oui, vous avez besoin d'utiliser des cookies
- il s'agit d'une fonctionnalité de navigateur et il n'y a aucun moyen de la déclencher
- la façon habituelle de le faire devrait être un cookie avec le mot de passe crypté du côté du client
- Je ne suis pas tout à fait sûr de ce que je dis, mais du point de vue de l'utilisateur, il me semble que le navigateur détermine s'ils ont besoin d'afficher leur boîte de dialogue interne de sauvegarde de mot de passe basée uniquement sur la présence d'une entrée de mot de passe sur la page. Ainsi, tant que vous avez un mot de passe standard sur votre page, le navigateur essaiera d'ajouter la combinaison utilisateur/mot de passe dans son la base de données.