Question

Je viens mis en place un « souvenir de moi » fonctionnalité pour un login de l'utilisateur sur un site Web. La plupart des conseils était d'avoir le userid stocké dans un cookie, et avoir une clé aléatoire à long, unguessable. Si ces deux correspondent, l'utilisateur est considéré comme authentifié.

Le fait d'avoir deux cordes aident réellement? Ne serait-clé plus exactement la même chose?

En d'autres termes, ne sont pas deux clés tout aussi sensibles aux attaques comme une clé plus? (Je pense que ce serait la longueur totale des clés, peu importe combien vous en avez)

Remarque: Il pourrait y avoir des problèmes d'efficacité de la requête de DB ici aussi, par exemple, en regardant un grand UUID dans le DB n'est pas aussi facile que de regarder un petit nombre. (Sur une note tangentielle, Gmail utilise un jeton de six chiffres numéro de leur connexion d'un temps avec le nom d'utilisateur.)

Était-ce utile?

La solution

discussion robuste de cela dans cette SO fil .

  

... l'utilisateur est considéré comme authentifié.

Si probablement lu authentifié mais avec authoriziation limitée.

Par commentaire: Un peu plus sûr car il est un emploi du temps et il est difficile de deviner. Donc, si le cookie est compromise, l'attaquant doit agir rapidement ou le jeton sera invalidée par le loging utilisateur légitime alors que le code d'utilisateur ne peut pas changer pendant longtemps.

Autres conseils

Je ne suis pas expert en Crypto, mais aussi longtemps que vous vérifier les tentatives de forçage brute, vous devriez être en mesure d'utiliser une touche de raccourci (comme 6 chiffres de Gmail). La vulnérabilité réelle est que les gens l'écoute quand un utilisateur se connecte (par exemple. Sidejacking).

Dans les sites je l'ai déjà créé, je servais d'un hachage et un user_id salé du mot de passe de l'utilisateur. La principale raison que j'ai utilisé deux champs pour authentifier un utilisateur est parce qu'il m'a sauvé la peine d'ajouter une autre table (et ce qui complique la conception de base de données.) Avec également le <=> stocké dans le cookie que je pouvais faire une consultation indexée dans le tableau des utilisateurs et faire correspondre efficacement le hachage salé à l'utilisateur. Bien sûr, vous pouvez concaténer à la fois le user_id et le hachage en une seule valeur et juste stocker que dans le cookie.

Si vous avez juste une chaîne aléatoire unguessable alors vous devez avoir une table séparée pour associer la chaîne aléatoire avec un nom d'utilisateur et faire une autre consultation pour cet utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top