【问题标题】:CodeIgniter - Which part of code is changing and updating session id?CodeIgniter - 代码的哪一部分正在更改和更新会话 ID?
【发布时间】:2011-12-30 04:10:10
【问题描述】:

在我的脚本中,CI 会在更改会话 ID 时更新数据库中的会话表。问题是,每当它发生变化时,我都需要知道它。只是我想在数据库上的某个不同位置记录它,同时保留实际记录。我该怎么办?

【问题讨论】:

标签: database codeigniter session


【解决方案1】:

找到我自己的答案。 system/libraries/Session.php line:383 当然行号可能不同,但是如果您搜索以下字符串,您将了解 CodeIgniter 在何处更改数据库中的 session_id:'session_id' => $new_sessid

【讨论】:

  • 您可能有一个更根本的问题 - CI 仅在认为需要时才回收会话。当然,您可以按照您所说的那样禁用它 - 但您应该 100% 确定您知道它为什么要回收并且防止它不是问题 - 例如。 CI 每隔一段时间就会回收会话,以使被盗会话更难用于对您的站点进行身份验证 - 您是要删除此安全功能吗?如果我是你,我会找出它为什么会被回收并修复它 - 很可能只是配置中的会话超时设置,但它可能是很多事情
  • (如果有帮助,我很乐意与您一起探讨并找出根本原因)
  • @Basiclife,好吧,要么我问的问题不明显(可能不明显,我的错),要么你误解了我。 :) 你对安全问题是正确的。我不想破坏它,我希望它与我的基于会话的购物篮并行运行。这就是为什么我问 CodeIgniter 在哪里更改数据库中的会话 id - 因为当它更改时,购物篮表中的那个也应该更改。
  • 我认为在这种情况下您想要做的是确保您的购物篮能够应对会话 ID 在流程中的变化。我知道这可能会很痛苦,但这是“正确”的解决方案。一个更简单的折衷方案可能是生成一个新的、唯一的 Id 并将其存储在会话中 - 然后在购物车中使用它。会话 ID 本身可能会改变,但内容不应该
  • 我想使用一个新的唯一 ID,但想出了一个更简单的方法。我在 Session 类中添加了一个新行,因此每次会话 id 更改时,购物篮表中的 id 也会更改。它现在工作正常。 :)
猜你喜欢
  • 2011-10-22
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-02
  • 1970-01-01
相关资源
最近更新 更多