在PHP中传递会话数据

时间:2013-12-10 14:25:54

标签: php oop session

我有一个$ _SESSION var,用于在用户登录时存储简单,易于调用的识别信息。即使用户未登录,也会记录访问的最后一个文件(如果用户登录,则快速返回到那个页面)。

用户登录

$_SESSION[$userid,$username,$first_name,$lastPage];

用户未登录

$_SESSION[$lastPage];

我主要担心的是未来程序员的安全性和易于理解。

这些选项是否可行,或者我错过了一个更安全的选项,并且对程序员来说非常容易理解?

  1. 使用$ _SESSION var,并在类中访问它。
  2. 使用sessionWrapper类来模仿$ _SESSION中的值。
  3. 只保留唯一标识符,并且$ _SESSION var中可能只有lastPage。创建一个sessionWrapper类,如果给出了这个唯一标识符,则从数据库中提取相关信息。
  4. 我在这里遗漏了什么吗?在我写这篇文章时,我更接近选项3,但我非常感谢有关最佳实践的任何反馈。

1 个答案:

答案 0 :(得分:1)

您是否考虑过为last_page信息使用Cookie?我假设您不必将所有内容保留在$_SESSION中。好的,现在是肉丸。如果安全是一个问题,那么$_SESSION是可以的,但不是最好的。问题可以归结为:

  • 您需要多少安全保障
  • 你愿意为下一代维护者复杂化多少

高安全性默认情况下,PHP会话会保存到服务器上的可访问文件中,您可以通过在应用程序中包含一个封装良好的数据库来缓解这种情况。只要它是一个非常简单的封装类,那么你就好了。您的选项3 是一个很好的解决方案。

低安全性:如果您不愿意为您的个人$_SESSION实施而放弃KLOC,我认为您现在可以保持相关信息安全,并选择不太重要的信息的Cookie:last_page是与用户关联但未识别的信息,因此请将它们分开。

  • 选项1 适用于小型项目
  • 选项2 适用于大型项目(我将此方法与一些方便且简单的包装类一起使用)

从我的观点来看,你不会错过任何东西,你只需要做出决定并坚持下去