gpt4 book ai didi

authentication - 我的 Web App 可以实现用户登录并保持无状态吗?

转载 作者:行者123 更新时间:2023-12-04 08:25:18 25 4
gpt4 key购买 nike

我们有一个无状态的 Web 应用程序。我们正在使用http
通过 SSL/TLS 进行身份验证。用户的浏览器是
大概存储身份验证凭据(如果他们以这种方式配置浏览器,甚至可能在浏览器关闭后。)我们验证
他们在每次访问。

由于主要与可用性有关的原因,我们希望
停止使用 http 身份验证。有没有合理的方法
实现用户登录和

  • 保持无国籍状态。
  • 不需要用户在每次访问时重新键入凭据。
  • 至少与基于 SSL/TLS 的 http 身份验证一样安全。

  • 例如,我们愿意使用 cookie,并且可以存储
    用户名和密码作为 cookie。然而,这似乎少了
    安全的。但是是吗?如果我们使用非持久性 cookie,是不是
    不如浏览器用来存储的任何方法安全
    session 期间或更长时间的凭据?

    我们可以按照建议存储用户名和密码的哈希值
    这里: What should I store in cookies to implement "Remember me" during user login但就是这样
    更好的?

    我们可以将随机 token 存储为 cookie,但随后我们必须
    在服务器上保留一个查找表( session )并成为
    有状态的。

    我们可以将凭据的加密版本存储为
    cookie,然后在每次访问时解密和验证。这个
    好像比http稍微安全一点
    身份验证,也不需要状态。然而,我
    不确定我们是否需要额外的解密开销。而且真的更安全吗?如果有人获得了加密(或散列,如上)字符串的副本,这是否会给他们提供与拥有密码相同的访问权限?

    我很感激你的想法,但让我们从
    假设通过 SSL/TLS 的 http 身份验证是安全的
    足以满足我们的目的,我们希望保持无国籍状态。

    编辑

    经过更多研究,我认为这个 stackoverflow 问题: Client side sessions问题陈述得更好,答案也相应地更好。感谢大家的投入。

    最佳答案

    在封闭系统(公司内部网,或者只是一个普通站点,但只有一小部分,相当精明的人群)中,通过 SSL 证书进行验证会更可取。为每个用户颁发一个证书,让他们将其安装在浏览器中,您可以随时撤销对该证书的访问权限(例如,请参阅 myopenid.com 的 ssl-cert 识别系统(不幸的是,错误的 a.t.m.)。

    这将需要您的用户进行一些工作,如果这是不可能/不可取的,那么 cookie token 会更可取,无论您查找用户/密码组合还是 cookie token 都不应该做那么多有区别。

    关于authentication - 我的 Web App 可以实现用户登录并保持无状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302620/

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