Php當我將
當我將 apache
設置為網站文件和文件夾的唯一所有者時,是否存在任何安全問題?
我的伺服器是
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
這意味著只有
600
或400
文件權限。(*.php不需要x
權限)至於文件夾權限,只有
500
或700
。這應該是最佳做法,因為盡可能少地提供許可。
有什麼安全問題嗎?
不,這不是最佳實踐。執行 apache 的使用者不應擁有任何文件或目錄。這個使用者應該只有對任何東西的讀取權限,尤其是對執行檔,例如
*.php
,除非特定情況下特別需要寫入權限,例如上傳目錄。原因很簡單:如果攻擊者能夠找到允許他們在 Web 伺服器程序中執行自己的程式碼的漏洞,那麼他們就能夠寫入 Web 伺服器可以寫入的任何文件。如果 Web 伺服器對執行檔具有寫入權限,那麼這意味著他們可以更改執行檔以執行攻擊者選擇的任何操作,只要使用者訪問相應的 URL。即使他們只有對不執行檔(例如
*.html
)的寫入權限,這也使他們能夠控制發送給您網站使用者的內容,包括向他們發送惡意 javascript 或嵌入內容的能力。讓 Web 伺服器使用者
chmod 400
擁有的文件也不是更好,因為擁有文件的使用者可以隨意更改其權限以賦予自己寫訪問權限。