如何安全地设置会话变量以记录某人?

时间:2010-12-18 08:32:46

标签: php security session session-variables

如果有人能帮助我,我在这里有几个问题。首先,我正在为我的应用程序的用户创建登录系统。我正在使用共享主机(dreamhost),我想知道,在用户登录并且成功之后,我如何验证用户是否登录到页面?我假设我使用会话变量,但是出于某些目的需要存储用户的名字。将用户名称存储在会话变量中是否安全,并且如果用户登录,基本上只是存储到会话变量中是安全的:ex:$ _SESSION ['logged'] = 1;管他呢。此外,我一直在阅读任何人都可以访问我的会话数据,因为我在共享主机上,所以应该更改?或者我应该只使用会话变量以外的东西吗?

1 个答案:

答案 0 :(得分:3)

默认会话存储配置可能会使用共享主机上所有用户之间共享的位置。要验证这一点,请查看phpinfo的输出,尤其是session.save_pathsession.save_handler。这些设置记录在PHP session configuration documentation

您的共享主机可以作为您的用户运行您的PHP进程,而不是系统用户。在这种情况下,您可以将session.save_path更改为您拥有的主目录中的目录,并具有阻止其他用户读取该目录的权限(例如700)。

如果您的共享主机作为系统用户运行,您基本上无法获得存储这些文件的安全方法。然后,您可以使用数据库支持的会话存储选项,而不是使用session_set_save_handler设置 - 尽管我不确定如何阻止其他人读取您的配置设置。