代码之家  ›  专栏  ›  技术社区  ›  ctown4life

在PHP会话中存储用户密码是常见的吗?

  •  7
  • ctown4life  · 技术社区  · 14 年前

    这里是php会话的新手。我存储的用户数据是相当小的,不是很敏感,但当然我还是想要一个安全的网站。我已经用salt将他们的密码散列存储在我的数据库中。

    我是否需要在我的站点的每个页面上使用用户的密码来验证用户,或者这是一种过度杀戮?换句话说,如果他们已经成功“登录”并且我已经将他们的用户名存储在一个php会话中,那么这是否足够让他们四处漫游,让站点知道他们是谁?

    我这么问是因为在会话中存储用户密码可能不是最好的主意。是真的吗?

    6 回复  |  直到 14 年前
        1
  •  9
  •   Dolph    14 年前

    你不需要这么做 验证 授权 每一个请求。

    是根据数据库验证用户用户名/密码的地方。一旦他们成功认证, 您只需要在会话中存储他们的用户ID(或用户名)。

    在随后的每个请求中,检查以确保当前会话是 查看请求的内容。在您的情况下,您可能只需要确保会话中有一个有效的用户ID。。。你不必对数据库做任何事。

    function isAuthorized() {
        return isset($_SESSION['user_id']) && ($_SESSION['user_id'] != 0);
    }
    

        2
  •  5
  •   Ignacio Vazquez-Abrams    14 年前

    不要存储密码。相反,将一个身份验证令牌存储在一个单独的表中,您可以检查该令牌是否存在。

        3
  •  2
  •   Community CDub    7 年前

    我不会将密码存储在会话中,您只需存储他们已登录到会话中的密码即可。

    $_SESSION['uerlogged'] = $mytoken;
    

    $_SESSION['userlogged'] 已设置。

    PHP: Preventing Session Hijacking with token stored as a cookie?

        4
  •  1
  •   andyortlieb    14 年前

    在会话中实际上不需要存储密码。您应该有状态标志来显示它们当前是否经过身份验证,以及定义用户身份和用户信息的某种对象。

        5
  •  0
  •   user159088 user159088    14 年前

    它将只作为存储的用户名工作,这就足够了(甚至一个标志也可以)。

        6
  •  0
  •   user216441 user216441    14 年前

    用户不能修改会话,您只能在那里存储用户名,并相信它总是正确的。