Я создаю электронное настольное приложение, и оно будет вызывать удаленный API с токеном JWT.Тем не менее, где я должен сохранять этот токен JWT безопасно без угроз, таких как XSS, CSRF, человек в середине атаки и т. Д. И не может быть доступен другим приложениям
Я пытался использовать пакет node-keytar
,который использует ключ шифрования, полученный из имени пользователя.
Но в соответствии с этой проблемой (https://github.com/atom/node-keytar/issues/88), учетные данные (JWT в нашем сценарии) все еще могут быть скомпрометированы, если в среде пользователя установлено вредоносное ПО.
Код узла-Keytar довольно легко, вот секрет добавления
keytar.addPassword('KeytarTest', 'AccountName', 'secret');
и вот секрет получения
const secret = keytar.getPassword('KeytarTest', 'AccountName');
console.log(secret); // "supersecret"
Я думаю о том, что хранение JWT в памяти может быть самым безопасным способом, нопотребует от пользователя повторного входа в систему и получения токена JWT при каждом повторном открытии настольного электронного приложения. Любые предложения или мысли приветствуются. Спасибо!