Apache - suExec - FastCGI - PHP = 安全性問題

Apache - suExec - FastCGI - PHP = 安全性問題

我在本機開發盒上安裝了帶有 FastCGI (mod_fastcgi)、suExec 和 PHP 的 Apache。工作完美,除了一件事。

假設我有兩個用戶:

user1 - /home/user1/public_html
user2 - /home/user2/public_html

我在我的設定中發現了一個嚴重的安全漏洞:我可以在 user1 檔案中包含來自 user2 Web 根目錄的檔案。如何預防?有小費嗎?

php-cgi進程正在正確的用戶下運行。

答案1

我建議您base_path在 VirtualHost 中設定:

php_admin_value open_basedir /usr/local/www/sixeightzero

答案2

如果目標是以使用者的名義運行 php,請將它們分開,然後嘗試apache2-mpm-itk,它比 fast-cgi 更容易部署,而且效果很好。

要使用,您只需將此行新增至虛擬主機配置:

AssignUserId someuser somegroup

如果您願意,也可以設定 MaxClientsVHost 和 NiceValue。

答案3

正確執行此操作的唯一方法是禁止一個用戶從另一個用戶的 homedir 讀取文件,但讓網路伺服器可以讀取它們。

您可以透過(範例)來完成此操作:

使用 acl 選項掛載檔案系統: mount -o acl /dev/sda /home

允許網路伺服器存取它:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

允許所有者閱讀:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

相關內容