PHP-用于临时控制的会话


PHP - Session Use for Temporary Control

我对会话的使用有点困惑。一个未登录的用户访问我的网站并上传一个文件。该用户在会话期间可以控制文件的所有权(使用session_id()设置)。然而,为了识别用户具有控制权,会话id被插入数据库中,以便与该用户id进行验证。这是一种好的做法吗?会话ID的唯一性如何?

会话ID在当前使用的ID空间中保证是唯一的。基本上,所有当前会话都有一个唯一的id。

这意味着你不能仅仅依赖会话id(当你这样说的时候似乎很明显)。我建议做一些事情,比如散列当前时间,并使用该文件的唯一id。

我会创建一个不同的唯一id,将其存储在会话和数据库中。一些框架和库在每次请求时都会出于安全目的重新生成会话ID,因此假设它们在用户会话期间永远不会更改是不好的。会话ID唯一可以确定的是它将是唯一的。