首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >gun.user.recall()在sessionStorage中以纯文本形式存储密码,而不进行加密

gun.user.recall()在sessionStorage中以纯文本形式存储密码,而不进行加密
EN

Stack Overflow用户
提问于 2019-06-12 20:35:37
回答 1查看 182关注 0票数 0

我想在我的项目中应用gun.user

当我使用user.recall(opt)将用户存储在sessionStorage中时,

This code in sea.js将密码存储在tmp中,而不进行加密。

这样可以吗?或者..。

我应该在调用.auth之前加密密码吗

这是我的代码。

代码语言:javascript
复制
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()document

将使用PBKDF2扩展的

密码短语,使其成为一种安全的登录方式。

然而,在我的会话存储中有平面文本。

枪版本为0.2019.515。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-13 04:03:03

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

可悲的是,

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

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

  • 凭据不与服务器共享(与cookies一样)。
  • 它使用户在刷新时保持登录。如果您关闭选项卡,
  • It将删除凭据

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

将凭据存储在localStorage中是不安全的,这就是sessionStorage更好的原因。

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

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

即使是sessionStorage

也不能很好地保持用户登录。

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

Keeping a Gun DB user authenticated during a session

更好的安全性

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56562395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档