48 votes

"Se souvenir de moi sur cet ordinateur" - Comment cela doit-il fonctionner ?

En examinant les cookies de Gmail, il est facile de voir ce qui est stocké dans le cookie "remember me". Le nom d'utilisateur/le jeton d'accès à usage unique. Il pourrait être mis en œuvre différemment dans les cas où le nom d'utilisateur est secret, ainsi. Mais peu importe... la chose n'est pas de très haute sécurité : vous volez le cookie et vous êtes prêt à partir.

Ma question porte toutefois sur le côté fonctionnel : quand effacez-vous leurs jetons d'accès ? Si un utilisateur se connecte sans en cliquant sur "se souvenir de moi" sur une autre machine, cela devrait-il invalider leurs jetons d'accès sur les machines de l'entreprise ? toutes les machines ? Je m'interroge sur la façon dont cela est traditionnellement mis en œuvre, et aussi sur la façon dont cela devrait être mis en œuvre.

20voto

Paul Dixon Points 122033

15voto

Nick Fortescue Points 18829

J'utilise régulièrement 2 ou 3 machines simultanément, et j'ai "remember me" sur chacune d'elles. Si l'une d'elles déconnectait les autres, ce serait très ennuyeux, donc je ne le recommanderais pas.

Traditionnellement, on utilise un délai d'attente, le cookie expirant après un certain temps (ou lorsque l'utilisateur se déconnecte).

Tout dépend de votre modèle de sécurité. Si vous écrivez une application interne à l'entreprise dans laquelle un seul utilisateur est censé se trouver sur un seul ordinateur, il est préférable d'appliquer des restrictions plus strictes que celles de Gmail.

Gardez également à l'esprit la possibilité d'un déni de service - si une action sur une machine peut rendre une autre machine inutilisable, cela pourrait être utilisé pour empêcher un utilisateur légitime de reprendre le contrôle dans certains scénarios.

5voto

David Waters Points 6645

La connexion à partir d'une autre machine ne devrait pas invalider la connexion associée à un cookie sur une autre machine. Cependant, si l'utilisateur se déconnecte ou dit "pas vous ? connectez-vous ici", cela devrait effacer le cookie sur lequel l'utilisateur travaille.

D'ailleurs, il est possible de rendre difficile le vol d'un cookie en insistant sur le protocole https et en faisant en sorte que les scripts ne soient pas autorisés.

En ajoutant " ; HttpOnly" à la sortie de votre cookie, cela rendra le cookie indisponible pour le javascript, par exemple.

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.0
Set-Cookie: ASP.NET_SessionId=ig2fac55; path=/; HttpOnly
X-AspNet-Version: 2.0.50727
Set-Cookie: user=t=bfabf0b1c1133a822; path=/; HttpOnly
X-Powered-By: ASP.NET
Date: Tue, 26 Aug 2008 10:51:08 GMT
Content-Length: 2838

vous pouvez en savoir plus à ce sujet

3voto

Vinko Vrsalovic Points 116138

Le cookie "Remember me" devrait également identifier la machine. Il doit être lié à la machine parce qu'il y a des endroits où vous voulez qu'on se souvienne de vous et d'autres où vous ne le voulez pas (domicile vs travail).

La date d'expiration est généralement fixée à une période raisonnable (deux semaines) ou après que l'utilisateur se soit explicitement déconnecté de la machine,

0voto

Sionide21 Points 1301

Ce que je ferais, c'est relier chaque session à une adresse IP. Si le jeton de session est envoyé à partir d'une IP différente de celle que vous avez pour cela, rejetez-le.

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