Web-Server

使用 shell 或 bash 腳本向網站添加動態功能(如處理 POST 數據)有多安全

  • February 16, 2012

我有一個使用 Apache 設置的簡單家庭 Web 伺服器,但我寧願不必安裝和使用 PHP。我正在研究腳本來處理我網站的基本動態部分。但是,我聽說在 cgi-bin 目錄中使用 bash/shell 腳本來實現這些目的可能效率低下/不安全。

使用 bash 腳本處理來自輸入欄位的 POST 數據會面臨哪些安全風險?如果我決定為我的網站使用 shell 腳本,我可能會面臨哪些其他攻擊?我怎樣才能減輕這些風險?

有沒有更好的方法來安全高效地建構動態網站?我是否應該不使用 cgi-bin 目錄,如果不使用,替代方案的好處/風險是什麼?

對於一個嚴肅的答案,使用 shell 腳本來解析即使是最簡單的 web 請求至少可以說是不明智的。Shell 腳本傾向於乙太多不同的方式混合執行程式碼和輸入。任何大量流量的性能都可能成為問題,因為大型腳本通常會產生許多子shell和程序。

此外,沒有什麼嚴肅的 Bash Web 庫可言。

為此,我建議使用 Perl 或 PHP。

實際上,Openwrt 項目(https://openwrt.org/)在它的“whiterussian”分支中使用(我不知道在較新的分支中是否是這種情況) Bash 用於提供動態內容(Web 管理面板)。請記住,它是嵌入式系統(Linksys 路由器)的韌體,因此通常沒有資源(記憶體)來安裝更複雜的東西(PHP)。

此外,此類管理面板(或至少應該)僅可從內部網路使用,因此應用程序不會暴露給公共(不受信任)輸入。

在其他情況下(尤其是在 PC 環境中),很難證明使用 Bash 提供動態 Web 內容是合理的。

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