Попробуйте удалить GameService у провайдеров, как у вас providedIn: 'root'
. И HttpClient там тоже не нужен
Да. Например, файл гибернации не зашифрован. И если вы не очистите память надежно, у вас могут возникнуть проблемы. Это всего лишь один пример. Вы всегда должны хранить секретные вещи в памяти только столько времени, сколько необходимо.
Он существует по причине. :) Если вы храните конфиденциальные данные в памяти, то другие процессы потенциально могут их прочитать.
Конечно, в вашем приложении пароли или другие защищенные данные могут быть не настолько критичны, чтобы это требовалось. Но в некоторых приложениях очень важно, чтобы вредоносный код не мог просто отслеживать ваши пароли или номера кредитных карт или любые другие данные, которые использует приложение.
Также обратите внимание, что некоторые ОС могут не обнулять память перед передачей ее приложению, это означает, что приложение может произвольно запрашивать память, сканировать ее на предмет возможного интересного контента и делать что-то с этим.
Если бы это приложение получало только нулевую память, конечно, ему было бы сложнее получить интересные данные.
Если у вас действительно есть данные пароля или другие секреты, вы также захотите убедиться, что память, в которой они находятся, не будет выгружена, иначе файл подкачки может стать проблема (я думаю, что функция, которую вы хотите, это «VirtualLock» для приложения Windows). Кроме того, вам нужно обнаружить окна, входящие в hibrenate, и стереть данные в этой точке тоже. Я верю, что Windows отправит сообщение каждому приложению, когда оно собирается гибрировать.
SecureZeroMemory ()
определенно не сделает ваше приложение совершенно безопасным. Тот факт, что пароль уже был в памяти, уже является дырой в безопасности. Использование SecureZeroMemory ()
определенно уменьшит вероятность получения вашего пароля. Я не вижу причин не использовать его, так почему бы и нет? Просто помните, что вам нужно беспокоиться и о многих других вещах.