2014-10-07 100 views
6

我正在嘗試爲企業級應用程序設計部署過程。我聽說Composer是否可以在生產環境中使用有衝突。使用Composer安裝在生產環境中的安全問題

據我所知,運行composer update將是一個錯誤,因爲您可以拉入未經測試的版本。建議僅使用composer install而不是生產。

所以說,我最擔心的是安全。中間人攻擊可能有多容易。如果packagist被黑客攻擊,我們可以撤銷被黑客入侵的代碼嗎?

我不想在每次部署時都有手動過程,我必須手動將供應商文件覆蓋。目前詹金斯將把源文件轉移到生產環境中。如果可能的話,我不想對供應商文件夾進行版本控制。

  1. 如果我使用composer install,我應該關心安全嗎?
  2. 如果我在生產中不使用作曲家,您如何建議我部署供應商文件?

回答

5

是的,您應該關心並嘗試瞭解涉及哪些數據傳輸。

Composer的當前實現在內部使用了大量校驗和,但沒有涉及包裹簽名,因此在composer install期間下載的任何內容都可能是任何軟件,具體取決於託管軟件存儲庫或TGZ/ZIP的服務器或者被詢問元數據是否是一個有效的目標,可能會被篡改以影響您要安裝的內容。

但請注意,這不僅與安全有關。如果您依賴於在生產部署過程中可安裝的軟件包,那麼更有可能是所提及的任何服務器都處於脫機狀態。您將如何保護您的部署免遭任何第三方軟件託管服務器的中斷?這個問題的答案很簡單:在本地託管軟件。

這個答案也會影響安​​全問題:如果您在本地託管軟件包,您也可以在使這些版本在內部可用之前進行審計。根據您需要的安全級別,您可以檢查每個您獲得的版本,並將可用版本限制爲只能檢查的幾個版本,否則您可能會創建一種更慷慨的方式來聲明您獲得的軟件從原始Git存儲庫中獲取,並在本地創建該軟件的ZIP版本(如果您不打算進一步開發包IMO,則ZIP更方便)。

只有兩種軟件產品已知可能對此有所幫助:Toran Proxy是來自Jordi Boggiano(Composer核心開發人員之一)的商業產品,該應用程序也應該爲Composer和基礎架構的開發提供資金。另一個軟件是Satis,它也允許創建你使用的軟件包的本地拷貝。

聲明:我的答案可能沒有涉及到更細節的細節,並可能提出一些細節過於簡短或可能錯誤。這並不是要解決每個安全細節,而是要給出一個廣泛的概述。軟件包的安全性和真實性檢查是一段時間內討論的話題(例如參見https://github.com/composer/composer/issues/38),但目前尚無任何結果。

+0

謝謝Sven,非常感謝迴應! – Roeland 2014-10-08 06:27:56

相關問題