【问题标题】:Is it bad to use session.cookie_lifetime for keeping session upon closed browser window?使用 session.cookie_lifetime 在关闭的浏览器窗口中保持会话是否不好?
【发布时间】:2017-08-25 04:50:18
【问题描述】:

我正在试验 PHP,我注意到如果您使用 SESSIONS,它们会在您关闭浏览器窗口时过期。

我在这里搜索,他们说你可以使用session.cookie_lifetime,但不建议长时间使用它。我的问题是。例如,像这样的网站、reddit 或 facebook。他们有一个“记住我”按钮,因此当您关闭浏览器时会话不会关闭。他们是如何做到这一点的?

提前致谢!

【问题讨论】:

    标签: php session


    【解决方案1】:

    会话的目的是在您关闭浏览器时关闭。如果您不希望这种行为,您应该使用 cookie 而不是会话。查看 PHP 中的 setcookie() 函数。这将允许您创建一个可以持续很长时间(甚至数年)的 cookie,并且非常适合长期持久数据,例如“还记得我吗?”函数。

    【讨论】:

    • 但是,我还读到如果我将用户信息存储在 cookie 中,因为 cookie 存储在浏览器中,黑客可以更改 cookie。例如,现在当我登录用户时,该用户 ID 存储在 $_SESSION['userId'] 变量中。但是,如果我使用 cookie 进行操作,那么黑客可以更改 id 并以任何其他用户身份登录。当然,我在这里遗漏了一些东西,但我不知道它是什么。
    • 您不希望将这样的敏感数据存储为可以被某人修改为可预测的数据。相反,您可以使用令牌。因此,您可以为用户创建一个随机令牌,然后存储该令牌。如果有人入侵了用户的计算机并修改了 cookie,那么它就不像用户 ID 那样可预测。相反,它是一个黑客无法预测的令牌。然后,如果黑客更改了它,最糟糕的情况是用户无法登录,但他们无法将其更改为与其他用户匹配的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2012-04-06
    • 2011-12-17
    • 2012-04-11
    相关资源
    最近更新 更多