我想在我的项目中应用gun.user
。
当我使用user.recall(opt)
将用户存储在sessionStorage中时,
This code in 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()
的document。
将使用PBKDF2扩展的
密码短语,使其成为一种安全的登录方式。
然而,在我的会话存储中有平面文本。
枪版本为0.2019.515。
发布于 2019-06-13 04:03:03
@huhsame,非常关心!(顺便说一句,你的推特上有令人难以置信的枪支AR/VR演示!)
可悲的是,
浏览器需要基于域的安全性,这限制了P2P安全性。
不幸的是,sessionStorage
是最安全最好的浏览器选项:
在页面加载之间,加密密码是一个好主意,但问题是,为了保持用户登录,还必须存储解密密钥。:(
将凭据存储在localStorage
中是不安全的,这就是sessionStorage
更好的原因。
警告!除非您使用浏览器扩展(如下所示)或浏览器采用更好的解决方案,否则XSS泄漏可能会泄露来自
sessionStorage
的凭据-但即使您禁用它,凭据也可以从内存中提取,而不需要扩展来保护帐户。
PBKDF2在登录过程中使用,而不是会话管理-同样,它也可以在那里使用,但具有与上面相同的限制。
即使是sessionStorage
,
也不能很好地保持用户登录。
因此,您应该考虑其他解决方案。我在这里写了更多关于其他选项的内容:
Keeping a Gun DB user authenticated during a session
更好的安全性
对于最好的安全性,用户很遗憾地需要安装浏览器扩展,比如我们的http://party.lol工具,直到浏览器本身采用这种类型的安全性,或者提供更好的以用户为中心的会话管理。
https://stackoverflow.com/questions/56562395
复制相似问题