gpt4 book ai didi

gun - 在 session 期间保持 Gun DB 用户的身份验证

转载 作者:行者123 更新时间:2023-12-04 01:50:03 24 4
gpt4 key购买 nike

我正在跟踪分布式/无服务器应用程序的 Gun/SEA 身份验证系统。当 Gun 用户通过身份验证时,此应用程序会将 session 信息保存到本地存储。我遇到的一个问题是刷新页面或打开新选项卡时我想在 session 有效时保持用户身份验证,并且由于 XSS 和物理安全原因,我宁愿不将用户名和密码存储在本地存储中.目前有解决这个问题的方法吗?我认为 sessionStorage 可能会更好,但它仍然存在一些相同的安全问题,即将用户名和密码存储在攻击者可能能够获取的地方,并且需要用户在打开新选项卡时登录。

最佳答案

授予 !很高兴收到您的来信,很抱歉回复延迟(我不确定评论的人是谁,因为它并没有真正帮助您的情况)。

这是一个很好的问题,您已经在某种程度上触及了安全性和浏览器技术的局限性 - 老实说,它们都不是很好。我们来复习:

  • 如果您添加 user.recall({sessionStorage: true})它会尝试自动登录您重新登录。但是您是对的,有一些安全权衡,但我认为这是合理的。
  • localStorage .我听说有些人提示不同的浏览器对 sessionStorage 的处理很差(不保存在新标签等中),所以下一个选择是使用 localStorage。但是,我确实认为这是一个实际的安全问题。
  • 温泉。单页应用程序 - 如果您尝试分发独立打包的“dApps”,这已经很有用了。但是你是对的,你仍然有刷新问题。根据我自己的经验,(1) 工作得很好,可以使这成为一个良好的用户体验。
  • 别针。我们社区提出的另一个想法是使用 (1 ~ 3) 但将其与设备 PIN 码相结合。这意味着您可以在合理的安全假设下将其存储在 localStorage 中,并在刷新/恢复时用户输入他们的 PIN 来解密他们的 session 。
  • IndexedDB .事实证明,WebCrypto API 确实可以选择导入 key ,并将在 IndexedDB 中对它们进行加密,然后在不将其传递给用户空间的情况下检索它们——至少,这是我所听到的。但是,您仍然需要处理最初获取 key 的问题,而且对 IndexedDB 的支持各不相同,您需要为它编写一个 GUN 插件。
  • 浏览器扩展。我最不喜欢这个,因为它需要用户安装一些东西,但由于浏览器没有提供一些与此等效的 native 功能,因此我们必须进行干预。好消息是 GUN + MetaMask 集成正在发生,并且 MetaMask 的安装量已经超过 100 万,因此您的用户可能已经拥有它。
  • 浏览器 API。我们将与 MetaMask 团队和其他人合作,为此获得一个原生 API 作为标准。我希望 Brave 会跟随 MetaMask 的脚步,FireFox 会跟随 Brave,而 Chrome 会最后。

  • 同时,您最初的建议可能是最好的 - 使用 (1) sessionStorage。它将与 MetaMask 向前/向后兼容。中期希望您或社区中的其他人能够 (5) 工作。然后长期(6 & 7)将是解决方案。

    至于现在,请查看 MetaMask 演示: https://twitter.com/marknadal/status/1062153254283276288

    Edit: MetaMask still working on their API for this, in the meanwhile, you can use our http://party.lol extension.

    关于gun - 在 session 期间保持 Gun DB 用户的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53578591/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com