Как разместить конфиденциальные учетные данные в браузере, чтобы они могли быть доступны через javascript на веб-странице, но не сервером или другими веб-сайтами?Хранить конфиденциальные данные в браузере, поэтому он недоступен другим сайтам.
Я создаю веб-сайт, на котором отображаются зашифрованные сообщения AES для пользователей. Сообщение извлекается через API и хранится на моем сервере. Пользователь может войти и ввести свой ключ для расшифровки в браузере, например:
$(document).on("submit", "#decryption_form", function(e) {
e.preventDefault();
var key = $("#key").val(); // The key is retrieved through a form input div
var iv = key.substring(32); // The initialization vector is a part of the key submitted by the user
var encrypted = $("#message").attr("encrypted"); // The encrypted message that was fetched from the server was added as an attribute to a div
var decrypted = CryptoJS.AES.decrypt(encrypted, key, { iv: iv }); // The message is decrypted
$("#message").html(decrypted); // The decrypted message is displayed to the user
});
Я заметил, что ProtonMail - ноль знаний поставщик услуг электронной почты, кто то поставить PGP ключей в браузере должна быть расшифрована с вашим учетные данные - могут сохранять конфиденциальные учетные данные даже при обновлении веб-страницы или копировать/вставлять URL-адрес в одну и ту же вкладку браузера (но не вставлять URL-адрес в новую вкладку). Их исходный код open source, но слишком сложный для меня, чтобы понять.
Это заставляет меня думать, что я должен как-то быть в состоянии защитить конфиденциальные учетные данные и даже сохранить данные для пользователей, которые перемещаются между моими веб-страницами на той же вкладке браузера (без необходимости отправлять ее через мой сервер).
This post обсуждает тему, но без канонических/конкретных ответов. Существует также this 3 year old post, но в основном комментарии касаются того, почему OP необходимо хранить в браузере данные о часах.
Ваши основные варианты [хранения сессий] (https://developer.mozilla.org/en- US/docs/Web/API/Window/sessionStorage) и файлы cookie. Обратите внимание, что пользователь браузера может получить доступ к ключам, но это, вероятно, хорошо в вашем случае. – Pointy
Может быть, с маркером внутри печенья? – Hackerman
Вы должны хранить конфиденциальную информацию в зашифрованном формате, и пока вы не поделитесь своим личным ключом, никто не сможет его расшифровать. –