gun.user.recall () сохраняет пароль в виде обычного текста в sessionStorage без шифрования - PullRequest
0 голосов
/ 12 июня 2019

Я хочу применить gun.user в моем проекте.

Когда я сохраняю пользователя в sessionStorage, используя user.recall(opt),

Этот код в sea.js сохраняет пароль в tmp без шифрования.

Это нормально?или ..

Должен ли я зашифровать пароль перед вызовом .auth?

Вот мой код.

jq('#up').on('click', (e) => {
    let form = check();
    if(!form){ return }
    S.user.create(form.alias, form.pass, (ack) => {
        if(ack.err){ return S.tell(ack.err) }
        check.up = true;
        S.user.auth(form.alias, form.pass, logined);
    });
});

jq('#in').on('click', (e) => {
    let form = check();
    if(!form){ return }
    S.user.auth(form.alias, form.pass, logined);
});

let logined = (ack) =>{
    if(ack.err){ return S.tell(ack.err) }
    S.user.recall({sessionStorage: true});
}

+

Iнашел документ о user.create().

ключевую фразу, которая будет расширена с помощью PBKDF2, чтобы сделать ее безопасным способом входа в систему.

Однако,в моем хранилище сеанса есть плоский текст.

enter image description here

версия оружия равна 0.2019.515.

1 Ответ

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

@ huhsame, большое беспокойство! (И, между прочим, невероятные демоверсии GUN AR / VR в вашем твиттере!)

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

К сожалению, sessionStorage является самым безопасным лучшим браузером опция:

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

Между загрузками страницы шифрование пароля - хорошая идея, но проблема в , чтобы пользователь оставался в системе, ключ дешифрования также должен быть сохранен. (

Хранение учетных данных в localStorage является небезопасным , поэтому sessionStorage лучше.

Внимание! Если вы не используете расширение для браузера (ниже) или браузеры не примут более совершенные решения, утечка XSS может поставить под угрозу учетные данные из sessionStorage - но даже если вы отключите его, учетные данные могут быть извлечены из памяти без расширения для защиты учетных записей.

PBKDF2 используется во время процесса входа в систему, а не для управления сеансом - опять же, он также может использоваться там, но имеет те же ограничения, что и выше.

Даже sessionStorage не работает для поддержания пользователей в системе.

В результате вы должны рассмотреть другие решения. Я написал больше о других вариантах здесь:

Сохранение аутентификации пользователя Gun DB во время сеанса

Лучшая безопасность

Для обеспечения максимальной безопасности пользователям, к сожалению, необходимо установить расширение для браузера, такое как наш инструмент http://party.lol, до тех пор, пока браузеры не примут этот тип безопасности изначально или не предложат лучший ориентированный на пользователя сеанс управление.

...