登录之前是否生成了我的会话ID?

Mat*_*son 4 php security session sessionid

我在php手册中阅读了有关会话漏洞的信息,并遇到了以下问题:成功验证用户身份后,我需要我的服务器/代码来生成会话ID。

现在,我不确定何时php设置会话ID。我的php应用程序类似于MVC,并且所有内容都通过index.php,并且在index.php的顶部,我拥有session.start(),因为每个页面(登录后)都使用会话。

这是漏洞风险吗?还是我应该这样说:这是否意味着在首次访问我的网站时(甚至在登录之前),服务器是否为该用户设置了会话ID?session.start()是否设置了用户ID,还是直到我设置了第一个会话变量即未生成的会话ID。直到我做$ _SESSION ['foo'] ='bar'?

如果会话实际上是在session.start()上已经生成的,我想一个好主意是在身份验证后重新生成session-id,这样可以解决问题吗?

Ste*_*ose 5

运行时会生成会话ID session_start()

最佳做法是在登录时刷新会话ID session_regenerate_id()