Javascript: rimuove i dati sensibili dalla memoria

1

Come indicato in questo articolo

JavaScript values are allocated when things (objects, strings, etc.) are created and "automatically" freed when they are not used anymore.

Recentemente ho acquisito un'istantanea del mio browser dopo aver fatto clic sulla versione del browser di 1password.
Con mia sorpresa le password di ogni oggetto aperto erano chiaramente leggibili in quell'istantanea.

Non ho approfondito molto il modo in cui memorizza questi dati, ma presumo che utilizzino un oggetto separato per ogni elemento e recuperino la password del cleartext la prima volta che viene aperta e lo lasciano.

Vorrei sapere se esiste un modo per prevenire questo tipo di comportamento (nelle mie app) gestendo i dati in modo diverso.
Cosa succede se dovessi memorizzare / mostrare i dati in chiaro in uno stesso oggetto sovrascritto con i nuovi dati quando si apre un altro elemento?


Dopo aver aperto sia 'test' che 'test2' le password di entrambi sarebbero state leggibili nel heapdump

    
posta HTDutchy 12.06.2018 - 14:32
fonte

1 risposta

1

Questo dovrebbe essere un commento, ma è un po 'lungo.

"automatically" freed when they are not used anymore

Liberato non significa rimosso dalla memoria, solo che i dati sono idonei per la garbage collection. Sono inaccessibili da Javascript ma probabilmente resteranno in memoria per qualche tempo.

the passwords of every opened item were clearly readable

Che cosa intendi per "oggetto aperto" - se è un sito che stai accedendo al momento dell'istantanea (tenendo presente che HTTP è senza stato) ciò implica piuttosto che i dati erano in utilizzare.

I'd like to know if there is a way to prevent this behaviour

Hai intenzione di scrivere il tuo gestore di password? Stai chiedendo se 1password può essere riconfigurato per comportarsi in modo diverso?

    
risposta data 12.06.2018 - 14:45
fonte

Leggi altre domande sui tag