php - 我的 session ID 是在登录前生成的吗?

标签 php security session sessionid

我在 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/

相关文章:

php - 防止在 Web 应用程序中直接 URL 访问 PHP 文件

java - 检测硬编码密码

mysql - KeyCloak 用户联盟和动态角色

php - $_SESSION ['username']/隐藏值

http - Dart session

php - 选择指定id的条目,以及前后具有相同外键值的条目

php - 如何使用 <a> 标签发布到表单并传递隐藏值?

asp.net - Session 在 MVC 中实际上是如何工作的?

php - 如何获取每个类别的最新帖子

php - 如何从标签列表的标签栏中准确选择标签?