【问题标题】:How to authenticate a session in a website如何验证网站中的会话
【发布时间】:2013-01-01 16:51:55
【问题描述】:

当用户登录网站时,哪种方法最适合验证会话?例如,在 $_SESSION 中设置一个已检查的变量,如果设置为用户登录,是否有效?我正在阅读this tutorial,他们有if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])),如果返回true,则向用户显示页面内容。是这样的吗?

【问题讨论】:

标签: authentication php


【解决方案1】:

是的,这是一般的想法。

在其他地方(在登录页面上)将$_SESSION['LoggedIn'] 设置为TRUE 后,您将检查$_SESSION['LoggedIn'] 是否为TRUE,如果是,则显示内容

【讨论】:

  • 有'LoggedIn'这个值可以吗,不应该是密码的哈希值之类的吗?或者这不是必要的,因为会话驻留在服务器上,因此它们很难被篡改?
  • 您在登录时验证用户。然后将会话设置为 TRUE。会话(理论上)很难篡改。
【解决方案2】:

我同意@relentless。但是,如果您将信息存储在数据库中,我更喜欢。

假设您有一个名为 user 的表,其中包含一个 tinyint 列 logged_in。每当用户成功登录时,将列值更新为 1。注销后将其更改为 0。

【讨论】:

  • 登录是会话的属性,而不是用户的属性。
  • 哦,我的错。我以某种方式将它与用户联系起来。
【解决方案3】:

是的,我建议您在http://php.net/manual/en/reserved.variables.php 中了解一下 PHP 和一些预定义变量,例如 $_POST 和 $_SESSION。还有诸如 isset() 和 empty() 之类的函数,也许还有一些 html 表单。

【讨论】:

    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多