Php

當我將 apache 設置為網站文件和文件夾的唯一所有者時,是否存在任何安全問題?

  • January 24, 2019

我的伺服器是centos 7, php 5.4, apache 2.4。我的網站位於/var/www.

至於apache只有一個使用者讀取或寫入/var/www,我將所有文件和文件夾的所有者和組設置為apache

對於文件夾和文件只讀:-r------- 1 apache apache 922 Jun 3 2014 connect.php

對於需要寫入的文件:-rw------- 1 apache apache 922 Jun 3 2014 connect.php

這意味著只有600400文件權限。(*.php不需要x權限)

至於文件夾權限,只有500700

這應該是最佳做法,因為盡可能少地提供許可。

有什麼安全問題嗎?

不,這不是最佳實踐。執行 apache 的使用者不應擁有任何文件或目錄。這個使用者應該只有對任何東西的讀取權限,尤其是對執行檔,例如*.php,除非特定情況下特別需要寫入權限,例如上傳目錄。

原因很簡單:如果攻擊者能夠找到允許他們在 Web 伺服器程序中執行自己的程式碼的漏洞,那麼他們就能夠寫入 Web 伺服器可以寫入的任何文件。如果 Web 伺服器對執行檔具有寫入權限,那麼這意味著他們可以更改執行檔以執行攻擊者選擇的任何操作,只要使用者訪問相應的 URL。即使他們只有對不執行檔(例如*.html)的寫入權限,這也使他們能夠控制發送給您網站使用者的內容,包括向他們發送惡意 javascript 或嵌入內容的能力。

讓 Web 伺服器使用者chmod 400擁有的文件也不是更好,因為擁有文件的使用者可以隨意更改其權限以賦予自己寫訪問權限。

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