Javascript: eliminar datos confidenciales de la memoria

1

Como se indica en este artículo

  

Los valores de JavaScript se asignan cuando las cosas (objetos, cadenas, etc.)   se crean y se liberan "automáticamente" cuando ya no se usan.

Hace poco tomé una instantánea de mi navegador después de hacer clic en la versión del navegador de 1password.
Para mi sorpresa, las contraseñas de todos los elementos abiertos se podían leer claramente en esa instantánea.

No investigué mucho más sobre la forma en que realmente almacena estos datos, pero asumo que usan un objeto separado para cada elemento y recuperan la contraseña de texto claro la primera vez que se abre y la dejan así.

Me gustaría saber si hay una manera de prevenir este tipo de comportamiento (en mis propias aplicaciones) manejando los datos de una manera diferente.
¿Qué ocurriría si solo almacenara / mostrara los datos de texto simple en el mismo objeto que se sobrescribe con los datos nuevos al abrir otro elemento?


Después de abrir tanto 'test' como 'test2', las contraseñas de ambos se podrían leer en el heapdump

    
pregunta HTDutchy 12.06.2018 - 14:32
fuente

1 respuesta

1

Esto debería ser un comentario, pero es un poco largo.

  

"automáticamente" liberado cuando ya no se utilizan

Liberado no significa que se eliminó de la memoria, solo que los datos son elegibles para la recolección de basura. No se puede acceder a ellos desde Javascript, pero es probable que permanezcan en la memoria durante algún tiempo.

  

las contraseñas de cada elemento abierto eran claramente legibles

¿Qué quiere decir con "elemento abierto"? Si se trata de un sitio al que estaba accediendo en el momento de la instantánea (teniendo en cuenta que HTTP es sin estado), esto implica que los datos estaban en utilizar.

  

Me gustaría saber si hay una manera de prevenir este comportamiento

¿Tiene la intención de escribir su propio administrador de contraseñas? ¿Está preguntando si 1 contraseña se puede reconfigurar para comportarse de manera diferente?

    
respondido por el symcbean 12.06.2018 - 14:45
fuente

Lea otras preguntas en las etiquetas