Security

通過 PHP 腳本限製文件寫入的範圍

  • March 15, 2017

我正在編寫一個將 IP 地址塊添加到.htaccess文件中的 PHP 腳本。我擔心的是我不想讓.htaccessWeb 伺服器使用者打開文件以進行一般寫入,因為 Web 伺服器的任何妥協都會允許他們將任何他們喜歡的內容寫入.htaccess文件。所以我試圖找到一種方法來限制 PHP 腳本只能以某種方式編寫我希望它能夠編寫的內容。

我認為執行此操作的適當方法可能是在另一個位置創建一個腳本,該腳本可能由 root 擁有,已suid在其上設置(我的 Web 分區不允許suid)。然後我可以從我的 PHP 腳本中呼叫該腳本,它只能執行該中間腳本的介面對其可用的操作,即獲取將特定 IP 地址阻止程式碼寫入.htaccess文件所需的參數,僅此而已。

這聽起來像是處理它的最佳方法嗎?有沒有其他更好的方法,或者我缺少任何考慮?


Meta Note:我考慮過這個問題的資訊安全站點或堆棧溢出。如果其中一個更好,請告訴我。

讓 PHP 腳本將 IP 地址寫入數據庫表。另外,從cron定期執行不同的腳本(推薦?Python),查詢值並將它們寫入.htaccess文件。然後你可以保持對.htaccess文件的權限嚴格,比如0640, root:www-user

我們可以在腳本上設置 SUID 位;但是,預設情況下,Linux 會正確地忽略它。只需在執行的腳本上將0700權限更改為.root:root``cron

很多像這樣的工作都可以用這種技術來處理,就像數據庫隊列一樣。當 Web 界面是系統管理的項目要求時,我使用過它。像這樣的場景中的隊列可以管理使用者、密碼、虛擬主機、DNS——你說得對,真的。

引用自:https://unix.stackexchange.com/questions/351736