2009-01-28 5 views
1

Lorsqu'un utilisateur se connecte, je lui donne un cookie nommé auth avec une valeur qui est un GUID, qui expire dans deux semaines. J'enregistre le GUID hashed dans la base de données avec un sel de leur userID, puis date quand il expire. Lorsqu'un utilisateur accède au site, je vérifie le cookie et je le connecte s'il correspond et n'a pas expiré dans la base de données.Modifiez-vous un jeton d'authentification pour un utilisateur authentifié par cookie? Si oui, à quelle fréquence?

À un moment donné, avant que les 2 semaines ne soient écoulées, je pensais à mettre à jour la ligne et à augmenter la date d'expiration. Combien de fois faites-vous cela? Chaque demande de page semble trop souvent car je vais constamment écrire à la table des utilisateurs.

Je pensais également à changer la valeur du cookie auth pour le moment. L'inconvénient de ceci est que vous ne pouvez pas être authentifié sur plusieurs ordinateurs/navigateurs.

Je pourrais accomplir cela via un cookie de session, de sorte que cette réécriture ne se produise qu'une fois par session. Lorsqu'un utilisateur accède à une page, je vérifie un cookie de session nommé authentifié. Si ce n'est pas le cas, je leur donne un nouveau cookie de session de valeur d'authentification et de cookie d'authentification et augmente les temps d'expiration dans le cookie DB et auth. Si c'est le cas, je viens de valider le cookie auth. Il semble que StackOverflow ne change jamais son cookie d'authentification tant que vous ne vous déconnectez pas et ne vous reconnectez pas. Cela semble le rendre plus vulnérable au détournement de session. Si vous obtenez le cookie d'authentification, vous avez accès au compte utilisateur jusqu'à ce qu'il se connecte. à nouveau. Depuis leur cookie auth n'expire ou modifier l'utilisateur ne sera pas connecté par vous connecter.

  • -vous permettre à un utilisateur de se connecter à partir de plusieurs emplacements/browers?
  • Si non, à quelle fréquence changez-vous leurs jetons d'authentification?
+0

Nous utilisons une session persistante et faites pivoter un jeton toutes les XX minutes. Si quelqu'un arrive sur le site en utilisant une combo de session/jeton invalidée, tous les enregistrements sont effacés et l'utilisateur est déconnecté. –

Répondre

0

Cela dépend du niveau de sécurité, les endroits où j'ai travaillé normalement doivent être assez élevés.

  1. Non, nous n'autorisons pas les utilisateurs à se connecter à partir de plusieurs navigateurs.
  2. Nous permettons aux utilisateurs de se reconnecter après 20 minutes d'inactivité. En fonction de la précision de la synchronisation, la personne détermine la fréquence de mise à jour du jeton. J'ai été des endroits où l'heure d'expiration est mise à jour chaque fois que l'utilisateur envoie un message au système.
Questions connexes