Je souhaite que mon site Web ait une case à cocher sur laquelle les utilisateurs peuvent cliquer pour ne pas avoir à se connecter à chaque fois qu'ils visitent mon site Web. Je sais que je devrai stocker un cookie sur leur ordinateur pour mettre cela en œuvre, mais que devrait contenir ce cookie?
En outre, y a-t-il des erreurs communes à éviter pour que ce cookie ne présente pas de vulnérabilité en matière de sécurité, ce qui pourrait être évité tout en offrant la fonctionnalité "Remember me"?
Vous pouvez utiliser cette stratégie décrite ici en tant que meilleure pratique (2006) ou ne stratégie mise à jour décrite ici (2015):
Cette approche offre une défense en profondeur. Si quelqu'un parvient à divulguer la table de la base de données, cela ne laisse pas à un attaquant une porte ouverte pour emprunter l'identité de ses utilisateurs.
Je voudrais stocker un identifiant d'utilisateur et un jeton. Lorsque l'utilisateur revient sur le site, comparez ces deux informations avec un élément persistant, tel qu'une entrée de base de données.
En ce qui concerne la sécurité, il suffit de ne rien mettre dedans qui permettrait à quelqu'un de modifier le cookie pour obtenir des avantages supplémentaires. Par exemple, ne stockez pas leurs groupes d'utilisateurs ou leur mot de passe. Tout ce qui peut être modifié pour contourner votre sécurité ne doit pas être stocké dans le cookie.
Stocker leur UserId et un RememberMeToken. Quand ils se connectent avec Remember Me Check, générez un nouveau RememberMeToken (qui invalide toutes les autres machines marquées et se souvient de moi).
Quand ils reviennent, cherchez-les à l'aide du jeton Remember me et assurez-vous que l'ID utilisateur correspond.
En enquêtant sur des sessions persistantes moi-même, j'ai constaté que le risque pour la sécurité ne valait tout simplement pas. Utilisez-le si vous devez absolument, mais vous ne devriez envisager une telle session que faiblement authentifiée et forcer une nouvelle connexion pour tout ce qui pourrait avoir de la valeur pour un attaquant.
La raison en est bien sûr que vos cookies contenant votre session persistante sont si facilement volés.
4 façons de voler vos cookies (de n commentaire de Jens Roland sur la page @splattne
à partir de sa réponse):