【问题标题】:How to create a session variable in php using phpsessionmanager class如何使用 phpsessionmanager 类在 php 中创建会话变量
【发布时间】:2014-06-15 21:45:02
【问题描述】:

我找到了一个 PHP 类

PHPsessionManager

相关文章可以找到How to create a bulletproof-sessions

该课程是关于创建一个安全会话,其中session_id 随每个请求而变化,并且该请求也被销毁,因此攻击者将无法找到任何会话。

说明指出,为了创建一个新会话,您可以这样做:

// Creates a basic session.
SessionManager::sessionStart('InstallationName');

但是如何设置会话变量? (即$_SESSION['first_name'] = 'Mike';

那么如何在这个会话中保存不同的变量呢?

【问题讨论】:

  • 查看PHPSessionManager 中的代码,您似乎可以按照您的问题进行操作 - $_SESSION['first_name'] = 'Mike'。你试过了吗?
  • 我试过了,但是没用。
  • 怎么不工作了?你读出的数据不是你在$_SESSION数组中设置的数据?
  • 正确。当我 echo $_SESSION['first_name'] 什么都没有打印出来。
  • 你什么时候在$_SESSION中设置变量?如果你在运行 SessionManager::sessionStart('InstallationName') 之前就这样做了,那么它就会被清除。

标签: session session-variables php


【解决方案1】:

当我查看类本身时,(http://phpsessionmanager.googlecode.com/svn/trunk/Session.class.php) 我认为这个类并没有被用来启动会话变量,因为你想使用它。

例如:您可以在用户登录您的站点后初始化此类。这样,您可以(之后)识别用户,而无需再次请求用户凭据。

如果我错了,请纠正我。

【讨论】:

  • 我想是的。但是否也应该保护会话变量?
  • 不,这个类不使用常规会话,而是创建一个 cookie。所以你不要将它用于变量。只需跟踪已登录的用户。(这样用户就不必每次都输入他的凭据)
  • 所以我只会使用这个类来检查用户是否登录,而不是别的?如果是这种情况,那么我将如何安全地使用会话变量?
  • 根据你想在会话中存储的信息和你想用它做什么,你能不能散列它。而且我真的希望一切都安全,可以使用 SSL。此外,会话变量是服务器端的,因此用户无法查看或操作它。 (stackoverflow.com/questions/2430253/…)
  • 我明白了。那么如何评估这种使用是否被授权呢?首先我会匹配数据库中的用户名/密码。如果我可以匹配它们,那么我将启动会话 SessionManager::sessionStart('InstallationName')。但是我如何检查会话是否被授权?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 2017-08-29
  • 1970-01-01
  • 2015-04-28
  • 1970-01-01
  • 1970-01-01
  • 2011-07-08
相关资源
最近更新 更多