Security
通過 PHP 腳本限製文件寫入的範圍
我正在編寫一個將 IP 地址塊添加到
.htaccess
文件中的 PHP 腳本。我擔心的是我不想讓.htaccess
Web 伺服器使用者打開文件以進行一般寫入,因為 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——你說得對,真的。