我在 php 手册中阅读了 session 漏洞并遇到了这个问题:我需要我的服务器/代码在成功验证用户后生成 session ID。
现在,我不确定 php 何时设置 session ID。我的 php 应用程序类似于 MVC,一切都通过 index.php,在 index.php 的顶部我有 session.start() 因为每个页面(登录后)都使用 session 。
这是漏洞风险吗?或者,我应该这样说:这是否意味着在第一次到达我的站点时,甚至在登录之前,服务器是否为该用户设置了一个 session ID? session.start() 是否设置用户 ID,或者是在我设置第一个 session 变量之前未生成 session ID,即。直到我做 $_SESSION['foo']='bar'?
如果 session 实际上已经在 session.start() 时生成,我想一个好主意是在身份验证后重新生成 session ID,在这种情况下是否可以解决问题?
最佳答案
session ID 在您运行 session_start()
时生成。
最佳做法是在登录时使用 session_regenerate_id()
刷新 session ID。
关于php - 我的 session ID 是在登录前生成的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5976069/