当 php 脚本需要操作文件时,我应该使用 suPHP 还是 DSO (mod_PHP)?

当 php 脚本需要操作文件时,我应该使用 suPHP 还是 DSO (mod_PHP)?

我最近在 StackOverflow 上问了一个问题,我打算在这里将其作为另一个问题重新提出,并进行一些更改和添加信息。

我有一堆 php 脚本,需要能够创建、移动和删除文件和文件夹。这些脚本还需要移动和删除通过 FTP 从 Windows 计算机上传的文件。

我的 VPS 当前使用 DSO,因此为了让我的脚本能够执行并且不会因为权限错误而终止,我不得不将所有目录和文件的 CHMOD 设置为 777。

据我所知,使用 777 权限是不安全的,不应该这样做。我有一个 VPS,但有多个用户,因为我托管了多个网站,其中一些网站由其他人控制。

我可能需要提一下,我运行了 phpinfo() 并在“PHP Credits”部分下发现了以下内容:

User/Group      nobody(99)/99 

我一直在阅读有关通过 php 和 suPHP 与 DSO 进行文件操作的文章,但我仍然不确定应该怎么做。从我读到的内容来看,切换到 suPHP 似乎可以解决我所有的问题(不再有权限问题),但我读到它会大大降低服务器的速度。

有人能就此事给我一些建议吗?

答案1

从我读过的内容来看,切换到 suPHP 似乎可以解决我所有的问题(不再有权限问题)

是的,只要你愿意,suPHP 将解决所有与权限相关的问题。不是有任何 CHMOD 0777 - suPHP 都会拒绝它,因为它是一个巨大的安全漏洞,并会向您发送error_log消息,告诉您最多将其更改为 0755。

最好的思考方式是这样的:

  • 没有 suPHP = PHP 以“普通”用户身份运行,就像您有家政服务员一样。您让家政服务员帮您取东西,他们会帮您取,但如果您让他们做特别要求你(签订合同 -> 写入文件)那么他们将无法做到。
  • suPHP 允许您拥有任意数量的家庭帮手,但他们都会假装是您。他们可以做您能做的一切,不多也不少。没问题!

我读到过它会大大降低服务器的速度。

在哪里?我从来不知道这是一个问题。

总之:切换到 suPHP。

相关内容