Очистить данные из памяти в JS - PullRequest
1 голос
/ 29 июня 2019

Учитывая, что я оперирую какими-то конфиденциальными данными, например, расшифрованным секретом, и я хочу распоряжаться ими, как только они мне больше не нужны, есть ли эффективный способ сделать это в JS?

Например, может ли что-то подобное

let secret = null;

secret = getSecretSomehow();
useSecretSomehow(secret);

secret = null; // clear secret

выполнить, т. Е. secret прекратит существовать в памяти в этот момент, и получить его невозможно, если кто-то сбросит устройствопамять после выполнения этой строки, или есть какие-то предупреждения JS, которые могут сделать его неэффективным?

Чтобы прояснить и уточнить вопрос - предположим, что мы не помещаем эти данные в DOM или что-то еще, это толькосуществует как переменная.

1 Ответ

0 голосов
/ 29 июня 2019

Удаление является более семантическим, однако это зависит от того, хотите ли вы оставить переменную определенной или удалить ее полностью.

window.x = "Test";
console.log(window.x);
// "Test"

delete window.x;
console.log(window.x);
// undefined

Используя delete, x больше не является свойством объекта окна. Ваш пример выше обнуляет переменную. В контексте моего примера, если вы обнулите свойство x, тогда это свойство все еще будет существовать в объекте window. Из соображений безопасности комментарии кажутся наиболее полезными.

Надеюсь, это полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...