security password-protection remember-me

security - "Recordarme en esta computadora"-¿Cómo debería funcionar?



password-protection remember-me (6)

Iniciar sesión desde otra máquina no debe invalidar el inicio de sesión asociado con una cookie en una máquina diferente. Sin embargo, si los usuarios cierran sesión o "¿no es así? Inicie sesión aquí", esto debería borrar la cookie en la que el usuario está trabajando.

Por cierto, robar una cookie puede ser difícil, al insistir en https y hacerlo no para crear scripts.

Al agregar "; HttpOnly" a la salida de su cookie, esto hará que la cookie no esté disponible para javascript, por ejemplo

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

puedes leer más sobre esto

Al mirar las cookies de Gmail, es fácil ver lo que está almacenado en la cookie "recordarme". El nombre de usuario / token de acceso único. Podría implementarse de manera diferente en los casos en que el nombre de usuario también sea secreto. Pero lo que sea ... la cosa no es una seguridad muy alta: te roban la galleta y estás listo para ir.

Sin embargo, mi pregunta es sobre el aspecto funcional: ¿cuándo limpiáis los tokens de acceso? Si un usuario inicia sesión sin hacer clic en "recordarme" en otra máquina, ¿debería invalidar sus tokens de acceso en todas las máquinas ? Pregunto cómo se implementa tradicionalmente y cómo debería implementarse.


La cookie de recordarme también debería identificar la máquina. Debe estar relacionado con la máquina porque hay lugares donde desea ser recordado y otros lugares donde no lo hace (hogar vs. trabajo).

La fecha de caducidad se establece generalmente en un período razonable (dos semanas) o después de que el usuario haya cerrado sesión explícitamente en la máquina,


Lo que haría es vincular cada sesión a una dirección IP. Si el token de sesión se envía desde una dirección IP diferente a la que tiene para eso, bórrelo.



Los tokens de acceso deben ser específicos de IP para que no puedan transferirse fácilmente a través de las máquinas.

También deberían implementarse de manera que les permita a los usuarios ver en qué máquinas tienen fichas activas.

Los sitios que eligen matar a un token una vez que se crea uno nuevo en otra computadora: optan por que sus usuarios no accedan a su servicio en varias computadoras, o si lo hacen, que su uso justifica volver a iniciar sesión.

La política que emplea realmente depende de los datos que tiene y de las necesidades del usuario.


Uso regularmente 2 o 3 máquinas simultáneamente y me "recuerdo" en todas. Si uno de ellos desconectó los otros que sería muy molesto, entonces no lo recomendaría.

Tradicionalmente utilizaría un tiempo de espera, la cookie expira después de un cierto período de tiempo (o cuando el usuario cierra la sesión).

Todo depende de tu modelo de seguridad. Si está escribiendo una aplicación interna de la compañía en la que solo espera que un usuario esté en una computadora, es posible que desee tener restricciones más estrictas que gmail.

Además, tenga en cuenta la posibilidad de denegación de servicio: si una acción en una máquina puede forzar la inutilización de otra máquina, podría utilizarse para evitar que un usuario legítimo tome el control en ciertos escenarios.