gun.user.recall() 将密码以明文形式存储在 sessionStorage 中而不加密
gun.user.recall() stores password as plain text in sessionStorage without encryption
我想在我的项目中应用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。
Passphrase that will be extended with PBKDF2 to make it a secure way
to login.
但是,我的会话存储中有平面文本。
枪支版本为0.2019.515.
@huhsame,非常关心! (顺便说一句,令人难以置信的 GUN AR/VR 在你的 Twitter 上进行了演示!)
Browsers require domain-based security which sadly limits P2P security.
不幸的是,sessionStorage
是最安全的 浏览器 选项:
- 凭证不与服务器共享(就像 cookie 一样)。
- 它使用户在刷新时保持登录状态。
- 如果您关闭选项卡,它会删除凭据。
在页面加载之间,加密密码 是个好主意,但问题是 ,要使用户保持登录状态,还必须存储解密密钥。 :(
在 localStorage
中存储凭据 不安全,这就是 sessionStorage
更好的原因。
Warning! Unless you use a Browser Extension (below) or Browsers adopt better solutions, an XSS leak can compromise credentials from sessionStorage
- but even if you disable it, credentials can be pulled from in-memory without an Extension to protect accounts.
PBKDF2 在登录过程中使用,而不是会话管理 - 同样,它也可以在那里使用,但具有与上述相同的限制。
Even sessionStorage
does not work well for keeping users logged in.
因此,您应该考虑其他解决方案。我在这里写了更多关于其他选项的文章:
Keeping a Gun DB user authenticated during a session
更好的安全性
为了最好的安全性,用户可能需要安装一个浏览器扩展,比如我们的 http://party.lol 工具,直到浏览器本身采用这种类型的安全性,或者提供更好的 user-centric 会话管理。
我想在我的项目中应用gun.user
。
当我使用 user.recall(opt)
、
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。
Passphrase that will be extended with PBKDF2 to make it a secure way to login.
但是,我的会话存储中有平面文本。
枪支版本为0.2019.515.
@huhsame,非常关心! (顺便说一句,令人难以置信的 GUN AR/VR 在你的 Twitter 上进行了演示!)
Browsers require domain-based security which sadly limits P2P security.
不幸的是,sessionStorage
是最安全的 浏览器 选项:
- 凭证不与服务器共享(就像 cookie 一样)。
- 它使用户在刷新时保持登录状态。
- 如果您关闭选项卡,它会删除凭据。
在页面加载之间,加密密码 是个好主意,但问题是 ,要使用户保持登录状态,还必须存储解密密钥。 :(
在 localStorage
中存储凭据 不安全,这就是 sessionStorage
更好的原因。
Warning! Unless you use a Browser Extension (below) or Browsers adopt better solutions, an XSS leak can compromise credentials from
sessionStorage
- but even if you disable it, credentials can be pulled from in-memory without an Extension to protect accounts.
PBKDF2 在登录过程中使用,而不是会话管理 - 同样,它也可以在那里使用,但具有与上述相同的限制。
Even
sessionStorage
does not work well for keeping users logged in.
因此,您应该考虑其他解决方案。我在这里写了更多关于其他选项的文章:
Keeping a Gun DB user authenticated during a session
更好的安全性
为了最好的安全性,用户可能需要安装一个浏览器扩展,比如我们的 http://party.lol 工具,直到浏览器本身采用这种类型的安全性,或者提供更好的 user-centric 会话管理。