551 votes

Quelle est la meilleure façon de mettre en oeuvre « remember me » pour un site Web ?

Je veux mon site pour avoir une case à cocher que les utilisateurs peuvent cliquer afin qu’ils n’auront pas à vous connecter chaque fois qu’ils visitent mon site. Quelle est la meilleure façon de mettre en œuvre cette ? Je sais que j’aurai besoin de stocker un cookie sur son ordinateur, mais ce qui devrait être dedans ? Est-ce là tout ce que j’ai besoin de faire attention à garder ce cookie de présenter une faille de sécurité ?

576voto

splattne Points 48126

L'Amélioration Persistante Cookie De Connexion De Meilleure Pratique

Vous pouvez utiliser cette stratégie décrite ici comme une meilleure pratique:

  1. Lorsque l'utilisateur se connecte avec succès dans avec se Souvenir de Moi cochée, un cookie de connexion est émis en plus de la norme de session, gestion des cookies.
  2. Le cookie de connexion contient de l'utilisateur nom d'utilisateur, un identificateur de série, et un jeton. La série et de marque sont impossible à deviner des nombres aléatoires à partir d'une assez grande de l'espace. Tous les trois sont stockés dans une table de base de données.
  3. Lorsqu'un utilisateur visite le site et présente un cookie de connexion, le nom d'utilisateur, de la série, et un jeton sont recherchés dans la base de données.
    1. Si le triplet est présent, l'utilisateur est considéré comme authentifié. L'utilisées pion est retiré de la base de données. Un nouveau jeton est généré, stockées dans la base de données avec le nom d'utilisateur et le même identificateur de série, et un nouveau cookie de connexion contenant tous les trois est présenté à l'utilisateur.
    2. Si le nom d'utilisateur et de série sont présents, mais le jeton ne correspondent pas, un vol est supposé. L'utilisateur reçoit un très ferme avertissement et tous de l'utilisateur de rappeler les séances sont supprimés.
    3. Si le nom d'utilisateur et les séries ne sont pas présents, le cookie de connexion est ignoré.

11voto

jonnii Points 17046

Conserver leur nom d’utilisateur et un RememberMeToken. Quand ils vous connecter avec se souvenir de moi coché générer une nouvelle RememberMeToken (qui annule toutes les autres machines qui sont marqués sont de se souvenir de moi).

Quand ils reviennent recherchez-les par la remember me de jeton et assurez-vous que les matches de UserId.

10voto

dragonmantank Points 5316

J’ai stockerait un ID utilisateur et un jeton. Lorsque l’utilisateur revient sur le site de comparer ces deux éléments d’information contre quelque chose de persistants comme une entrée de DB.

En ce qui concerne la sécurité, juste ne rien mettre là-dedans qui permettra à une personne de modifier le cookie pour obtenir des avantages supplémentaires. Par exemple, n’enregistrez pas les groupes auront leur utilisateur ou leur mot de passe. Tout ce qui peut être modifié qui porteraient atteinte à votre sécurité ne doit pas être stocké dans le cookie.

1voto

Chobicus Points 1104

Vous devez être prudent avec « remember me » à cause de XSS si vous avez besoin mal cette fonctionnalité j’ai donner mon vote à la suggestion de splattne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X