Security

為什麼限制 Apache 使用者執行腳本?

  • February 4, 2011

當允許 Apache 使用者通過 PHP 執行 bash 腳本時——為什麼它被認為是危險的?我知道使用者可以遍歷整個文件系統,甚至可以查看機器上託管了哪些其他使用者;他們還可以讀取 中的設置conf/httpd.conf。但是這些資訊將如何幫助他們破解系統?考慮到 suexec 處於活動狀態。

在 php.ini 中存在(通常是預設的)安全限制,以防止腳本使用過多的記憶體、執行某些功能或通常執行不應執行的操作。

如果您允許 PHP 執行不受這種方式限制的 shell 腳本,那麼您就為攻擊者打開了可能性。例如,他們可以執行分叉炸彈並可能使您的伺服器離線。他們可以更輕鬆地參與 DDoS,或者針對其他伺服器執行漏洞掃描程序。如果您允許額外的抽象級別,那麼調試某些東西的開始位置以及伺服器是如何受到損害的也可能要困難得多。

一般來說,如果伺服器被正確鎖定,那麼惡意程式碼是有限的,但伺服器很少被正確鎖定。入侵伺服器通常需要兩個或三個漏洞 - 777 權限不會給您帶來問題,除非有人破壞了您的網站程式碼或具有訪問權限的惡意使用者四處遊蕩,但為什麼要冒險呢?

當人們試圖進入您的伺服器時,他們通常是盲目的。他們在猜測你的 PHP 設置,他們在猜測你的網路伺服器是如何配置的,他們在猜測使用者名(/etc/passwd 是世界可讀的),他們在猜測你的數據庫名稱。如果您允許他們閱讀配置文件,您的生活就會輕鬆很多。如果您允許他們通過電子郵件發送包含數據庫連接字元串的使用者名和密碼的 PHP 文件,那麼您將非常容易。如果您讓入站防火牆(例如,將 MySQL 限制為 localhost)從您的伺服器上執行任何他們想要的東西,那麼入站防火牆的用途是有限的。

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