Al discutir alternativas para pedirle al navegador que recuerde su contraseña, un tipo sugirió usar un marcador para almacenar las credenciales de los usuarios. La respuesta original está en portugués, pero traduciré aquí el protocolo que usó:
-
El usuario, mientras está conectado, tiene acceso a un bookmarklet [enlace] con un token único
-
Puede arrastrar ese bookmarklet a la barra de enlaces o a los marcadores normalmente
-
Al hacer clic en ese bookmarklet, el token se almacena en la propiedad
window.name
y se carga una URL -
Esta URL contiene un JS con otro token único
-
El JS combina ambos tokens y crea un hash [de autenticación]
-
El usuario se redirige a otra URL con el hash como argumento
Un poco más intrincado de lo que era IMHO, pero la idea básica era guardar las credenciales en la barra de favoritos, para que el usuario pudiera cargar el sitio e iniciar sesión automáticamente con solo hacer clic en un enlace.
Estoy tratando de envolver mi cabeza en torno a las implicaciones de dicha práctica. Supongo que al menos es seguro contra XSS (ya que el código JavaScript no puede acceder a la barra de favoritos AFAIK). Y en comparación con las contraseñas almacenadas en el navegador, no parece estar demasiado lejos (ambos permitirían que otra persona con acceso físico a la máquina inicie sesión como ese usuario fácilmente). A menos que haya algo más que esté pasando por alto ...
Información adicional: Mi intención original era mantener (no necesariamente almacenar) en el navegador algunos datos a los que ni siquiera el servidor puede acceder (por ejemplo, una clave de cifrado del lado del cliente). Este detalle es importante, de lo contrario, este escenario no sería diferente de la función "Recordarme" . Pero, por favor, no se centre demasiado en los detalles (los he analizado en detalle en este sitio y en otros sitios), solo en lo que se solicitó.
En otras palabras, supongamos que mi modelo de subprocesos pone más énfasis en la confidencialidad de los datos en la nube y menos en la computadora cliente del usuario (por ejemplo, alguien con acceso local que ve la contraseña no es una preocupación, sino una fuga de vulnerabilidades de XSS podría ser). Y la facilidad de uso es un requisito, de lo contrario nadie usará mi sistema (alternativas más seguras como el uso de un administrador de contraseñas o una extensión de navegador que interactúe con PGP o incluso, en el futuro, se ofrecerá la API WebCrypto para los usuarios más preocupados por la seguridad, pero no es obligatorio ; formulé la pregunta para comprender mejor las implicaciones de usar marcadores / la barra de favoritos, no para basar toda mi decisión en eso solo).