gpt4 book ai didi

security - 如何在网站上通过 session 管理多个状态?

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

对于以下情况,我们非常感谢任何帮助:

Amazon.com 如何管理不同级别的身份验证,一次是在您访问网站时,然后是在您转到“您的帐户”->“登录和安全”作为安全功能时?

用户登录(即验证)网站,7 天内没有任何事件。用户重新访问该网站,然后要求用户再次进行身份验证。这可以使用 cookie 来实现,但由于安全问题,它是使用来自服务器端的 session token 来实现的。 7 天后,当浏览器提供过期 token 时,会要求用户再次重新进行身份验证。

现在,新的要求是,如果用户登录并访问“您的帐户”页面,那么,

  • 如果用户仍在“您的帐户”页面上并且 10 分钟内没有任何事件,则应要求用户再次重新进行身份验证。

  • 或者。
  • 如果用户在 10 分钟后离开“您的帐户”页面并重新访问“您的帐户”页面,则应要求用户再次重新进行身份验证。

  • 所以使用 token ,我只能管理一个不活动的时间段,我如何处理多个状态,即状态(7 天)和部分状态(10 分钟)。

    处理这种情况的行业惯例是什么?不想将 cookie 用作安全问题。由于 SSO 提供程序用于身份验证,因此使用数据库将是最后的选择。

    - 大卫。

    最佳答案

    如何处理这个问题将归结为当前到期 session token 逻辑的实现细节。

    一种常见的方法是将 session token 存储在数据库或内存缓存中。如果是这种情况,您可以简单地添加一个新列来指示用户何时打开帐户页面。

    例如,您的新列可以称为 accountSettingsStartTime .通常它没有任何值(value),但是当用户导航到帐户页面时,它将填充当前时间。当用户离开帐户页面时,您可以将其清除。然后,当您检查安全 token 时,您只需要检查您的标准 7 天到期时间以及检查 accountSettingsStartTime列并确保它在最后 10 分钟内。

    或者,您可以在用户导航到帐户设置时为用户提供一个有效期为 10 分钟的全新 session token ,并强制使用该 token 进行涉及帐户设置的操作。然后,您可以在更改帐户设置时检查该 token ,并要求用户重新验证它是否已过期(并使他们的标准 7 天 token 无效)。当然,这需要客户端付出更多的努力。

    正如他们所说,给猫剥皮的方法不止一种 :)

    关于security - 如何在网站上通过 session 管理多个状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49442823/

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