应用程序按用户生成数据。每个用户都有一个唯一的用户ID和关联的唯一文件权限。用户文件存储在各个目录中,每个目录具有关联的用户权限。
要求是通过PHP提供安全的个人用户通过门户仅访问用户文件的权限。正在考虑的一种设计是模仿门户网站环境中的目录结构和权限。如果可以以用户身份运行PHP,则可以使用系统权限访问安全性。 (这会将安全性实现的范围限制为登录过程而不是应用程序。)
问题:是否可以以用户身份运行PHP并承担用户文件权限?
研究已经确定了一些类似的问题,但不是直接以个人用户身份运行PHP的直接问题。
使用FPM之类的东西来配置单独的进程池,这些进程池配置为以每个用户身份运行。
posix_seteuid()
和posix_seteuid()
来更改正在运行的进程的有效UID和GID。[以root身份运行PHP,甚至只是为了将其移至另一个UID / GID也是短暂的,这是一个 大规模安全漏洞
指数式。
“很好,”您反驳说,“这仅用于内部与受信任用户一起使用,因此我不必担心安全性。”NO。不好。 [为您叠起卷起的报纸]
从不。信任。用户。充其量他们永远不会有意破坏或破坏您的应用程序,但是:
此视图充其量是天真的。