Apache-2.2

當 php 腳本需要操作文件時,我應該使用 suPHP 還是 DSO (mod_PHP)?

  • September 16, 2012

我最近在 StackOverflow 上提出了一個問題,我將在這裡重新提出一個不同的問題,並提供一些更改和附加資訊。

我有一堆需要能夠創建、移動和刪除文件和文件夾的 php 腳本。這些腳本還需要移動和刪除通過 FTP 從 Windows 機器上傳的文件。

我的 VPS 目前使用 DSO,所以為了讓我的腳本執行並且不會因權限錯誤而死,我不得不將所有目錄和文件 CHMOD 到 777。

根據我的閱讀,使用 777 權限是不安全的,不應該這樣做。我有一個 VPS,但有多個使用者,因為我託管了許多網站,其中一些是其他人控制的。

我可能有必要提到我執行了 phpinfo() 並在“PHP Credits”部分下找到了以下內容:

User/Group      nobody(99)/99 

我一直在閱讀有關通過 php 和 suPHP 與 DSO 進行文件操作的主題,但我仍然不確定我應該做什麼。從我讀過的內容來看,切換到 suPHP 似乎可以解決我所有的問題(不再有權限問題),但我讀到它會大大降低伺服器的速度。

有人可以就此事給我任何建議嗎?

根據我的閱讀,切換到 suPHP 似乎可以解決我所有的問題(不再有權限問題)

是的,suPHP 將解決所有與權限相關的問題,前提是您沒有任何 CHMOD 0777 - suPHP 將拒絕此作為一個巨大的安全漏洞,並填寫您error_log的消息,告訴您最多將其更改為 0755。

最好的想法是這樣的:

  • 沒有 suPHP = PHP 作為“普通”使用者執行,就像您有家庭傭工一樣。你讓家庭傭工幫你拿東西,他們會,但如果你讓他們做特別需要你的事情(簽署契約->寫入文件),他們將無法做到。
  • suPHP 讓你可以隨心所欲地擁有盡可能多的家庭傭工,但他們都假裝是你。他們可以做你能做的一切,不多也不少。沒問題!

我讀過它大大降低了伺服器的速度。

在哪裡?我從來不知道這是個問題。

總結:切換到 suPHP。

引用自:https://serverfault.com/questions/428947