web-dev-qa-db-fra.com

Comment utiliser les cookies de manière sécurisée pour authentifier les utilisateurs?

Dans la plupart des cas, j'aime bien utiliser les cookies pour me rappeler que les utilisateurs qui reviennent sur mes sites Web sont des utilisateurs fréquents.

Au début de ma période idiote, je stockais un ID utilisateur (entier à incrémentation automatique) dans un cookie. Si l'utilisateur me renvoyait, j'utiliserais cette valeur de cookie pour les connecter automatiquement. C'était une mauvaise idée car quelqu'un pourrait facilement éditer le cookie pour utiliser un entier différent et se connecter en tant que quelqu'un d'autre.

Est-il possible de stocker un ID utilisateur de la même manière si ce dernier est un GUID?

Quelles sont les meilleures pratiques pour stocker des cookies "se souvenir de moi"?

7
jessegavin

Vous devriez envisager d'utiliser sessions pour gérer ce type de scénario.

Les sessions fonctionnent généralement en générant un GUID unique pour l'authentification de l'utilisateur et en l'enregistrant dans un cookie sur l'ordinateur local de l'utilisateur ou en le transmettant, de page en page, via l'URL.

Cette session GUID pointe sur un fichier ou une entrée de base de données sur le serveur qui peut ensuite être lu et écrit avec votre code source, en associant le GUID du cookie/URL de l'utilisateur à la GUID du fichier ou de l'entrée de base de données contenant vos données.

Il est généralement prudent de mettre des données plus sensibles (telles que l'ID utilisateur) dans les sessions car l'utilisateur final ne voit rien sauf le GUID de la session.

La plupart des langages Web auront une sorte de gestion de session intégrée.

2
Nat Ryall

Enregistrer deux cookies:

  • UserId: contient l'ID utilisateur
  • Password: contient le SHA1 du mot de passe de l'utilisateur

Très facile et sécurisé. N'oubliez pas l'attribut HttpOnly .

1
Thomas Bonini