【发布时间】:2016-05-21 21:02:32
【问题描述】:
session_id($randomString) 和 session_regenerate_id() 之间的明显区别是什么?两者似乎都更改了会话 ID:
session_regenerate_id() 会将当前会话 id 替换为新的,并保留当前会话信息。
session_id()用于获取或设置当前会话的会话ID。
如果我做对了,session_regenerate_id() 会创建一个新的会话文件并复制数据,并带有删除旧文件的选项;而session_id($randomString) 只是更改现有文件中的会话ID。
如果是这样,复制文件有什么好处?如何更好地防止会话固定的观点?
This answer 以及我找到的任何其他人都没有回答我的问题。
【问题讨论】:
-
如果您阅读了两个相应的手册页,会有明显的差异(尽管有点微妙),但我目前无法为此写出完整的答案,有 两个功能之间有一些重叠,但在行为上也有明显差异。
-
这些 php 方法在幕后所做的细节并不是我在任何地方发现的记录,这对我来说很奇怪,因为我觉得这对于安全可靠很重要会话实施...感谢您提出这个问题。