在PHP中: 用户是否有办法伪造会话变量?
对于登录系统,信任会话变量的值是否安全?
在PHP中: 用户是否有办法伪造会话变量?
对于登录系统,信任会话变量的值是否安全?
会话数据存储在服务器上,只有会话 ID 在客户端和服务器之间来回传递。除非服务器端脚本出现问题(或存在漏洞),否则客户端无法直接更改会话数据。但您必须确保只有“正确”的客户端知道会话 ID,因为它将此特定客户端与特定会话绑定在一起。例如(由于您提到了登录),在执行登录(尝试)时使用session_regenerate_id()以防止会话固定
会话被存储在您的服务器上,可以是文件或内存中。用户只持有一个cookie,该cookie定义了到您的服务器上会话数据的路径(通常是某种哈希值)。理论上,您可以将cookie更改为其他人的哈希值,但这非常不可能,除非您将它们存储为文件并在过期后不删除它们,否则旧会话被利用的可能性会增加。
是的,这被称为会话伪造/劫持。
您可以更改会话cookie的值,直到获得另一个用户的会话。