0

我想申请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});
}

+

我找到了关于user.create().

将使用 PBKDF2 扩展的密码短语,使其成为一种安全的登录方式。

但是,我的会话存储中有平面文本。

在此处输入图像描述

枪版本是 0.2019.515。

4

1 回答 1

0

@huhsame,非常关心!(顺便说一句,你的推特上有令人难以置信的 GUN AR/VR 演示!)

浏览器需要基于域的安全性,这可悲地限制了 P2P 安全性。

不幸的是,sessionStorage这是最安全的最佳浏览器选项:

  • 凭证不与服务器共享(就像 cookie 一样)。
  • 它使用户在刷新时保持登录状态。
  • 如果您关闭选项卡,它会删除凭据。

在页面加载之间,加密密码是一个好主意,但问题是,为了让用户保持登录状态,还必须存储解密密钥。:(

存储凭据localStorage不安全的,这就是为什么sessionStorage更好。

警告!除非您使用浏览器扩展(如下)或浏览器采用更好的解决方案,否则 XSS 泄漏可能会危及来自的凭据sessionStorage- 但即使您禁用它,也可以在没有扩展的情况下从内存中提取凭据以保护帐户。

PBKDF2在登录过程中使用,而不是会话管理 - 同样,它也可以在那里使用,但具有与上述相同的限制。

甚至sessionStorage不能很好地保持用户登录。

因此,您应该考虑其他解决方案。我在这里写了更多关于其他选项的信息:

在会话期间保持 Gun DB 用户的身份验证

更好的安全性

为了获得最佳安全性,用户很遗憾需要安装浏览器扩展程序,例如我们的http://party.lol工具,直到浏览器本身采用这种类型的安全性,或者提供更好的以用户为中心的会话管理。

于 2019-06-12T20:03:03.287 回答