session.save_path如何保护并提高会话的性能?

时间:2011-08-25 11:24:39

标签: php session

我想知道为什么如果在public_html之前将session.save_path从默认/ tmp更改为主目录中的真实目录,为什么会提高会话的安全性?

1 个答案:

答案 0 :(得分:1)

安全性:

如果多个应用程序在同一目录中写入其会话,则可能允许用户操纵其会话的内容,并绕过其他应用程序的安全性。

例如,如果应用程序A依赖于$_SESSION['is_admin']为管理员用户设置为true,而应用程序B允许用户将$_SESSION['is_admin']设置为true,则用户可以成为应用程序A的管理员

为每个应用程序设置不同的session.save_path可以避免此问题。

如果您不控制在同一服务器上运行的其他应用程序,则应将会话存储在其他应用程序无法访问的目录中,或者将会话加密,以便其他应用程序无法读取和修改它们。

请参阅 this slide (从第15页开始)。

PHP suhosin补丁/模块 can encrypt your session automatically

性能:

PHP必须定期遍历session.save_path中的所有会话,以便删除过期的会话。在此目录中有太多会话会降低性能。

如果每个应用程序有不同的session.save_path,则每个会话目录中的会话数较少。