我想知道为什么如果在public_html之前将session.save_path
从默认/ tmp更改为主目录中的真实目录,为什么会提高会话的安全性?
答案 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
,则每个会话目录中的会话数较少。