session_regenerate_id()
是什么?
正如函数名所说,它是一个将当前会话ID替换为新的,并保留当前会话信息的函数。
它有什么作用?
它主要有助于防止会话固定攻击。会话固定攻击是恶意用户试图利用系统中的漏洞来固定(设置)另一个用户的会话 ID (SID)。通过这样做,他们将获得作为原始用户的完全访问权限,并能够执行原本需要身份验证的任务。
为防止此类攻击,请在用户session_regenerate_id()
成功登录时(或为每个 X 请求)分配一个新的会话 ID。现在只有他拥有会话 ID,而您的旧(固定)会话 ID 不再有效。
我应该什么时候使用session_regenerate_id()
?
正如 symbecean 在下面的评论中指出的那样,会话 ID 必须在身份验证状态的任何转换时更改,并且仅在身份验证转换时更改。
进一步阅读: