【发布时间】:2011-03-15 19:42:11
【问题描述】:
我试图了解会话在 PHP 中的工作方式,发现会话数据默认存储在文件系统中。在共享主机环境中,任何用户编写的 PHP 脚本都可以读取会话数据。如何预防?
【问题讨论】:
-
可以为每个虚拟主机指定不同的保存路径。因此,不一定每个用户都可以访问该目录。
-
@Gumbo 是的,有一个警告——如果 PHP 使用 web 服务器的 uid 运行,则无法阻止虚拟主机 a 访问虚拟主机 b 会话数据。
-
@Artefacto,我同意。我相信在共享主机下,PHP 仍然作为每个主机帐户的同一用户运行。这是内置的安全漏洞,只有覆盖基于文件的处理程序才能治愈。对吗?
-
@Mike 这取决于,但许多确实在 Web 服务器 uid 下运行。覆盖基于文件的处理程序对您没有多大帮助,您仍然可以读取其他用户脚本并按照他的方式获取数据。
-
@Artefacto,但他只能按照其他用户脚本的预期工作方式读取其他用户脚本。