我正在尝试为企业级应用程序设计部署过程.关于Composer是否可以在生产环境中使用,我听到了相互矛盾的意见.
我知道运行composer update
会是一个错误,因为你可以提供未经测试的版本.而在生产中,建议仅composer install
使用.
所以说,我最关心的是安全问题.中间人的攻击有多容易.如果packagist遭到攻击,我们可以删除被黑客入侵的代码吗?
我不希望每次部署时都有一个手动流程,我必须手动将供应商文件移除.目前,Jenkins将把源文件移到生产环境中.如果可能的话,我不想版本控制供应商文件夹.
如果我使用,我真的应该关心安全吗composer install
?
如果我不在生产中使用composer,你如何建议我部署供应商文件?
Sven.. 6
是的,您应该关注并尝试了解涉及哪些数据传输.
Composer的当前实现确实在内部使用了很多校验和,但是没有涉及包签名,因此在期间下载的任何内容都composer install
可能是任何软件,具体取决于托管软件存储库或TGZ/ZIP的服务器,或者被询问元数据是一个有效的目标,可能会被篡改以影响您的安装.
但请注意,这不仅与安全性有关.如果您依赖于在生产部署期间可安装的软件包,则更有可能是所提到的任何服务器都处于脱机状态.您如何保护您的部署免受第三方软件托管的任何服务器中断?这个问题的答案非常简单:在本地托管软件.
这个答案也会影响安全问题:如果您在本地托管软件包,您还可以在内部提供这些版本之前对其进行审核.根据您需要的安全级别,您可以检查您获得的每个版本,并将可用版本限制为只能检查的少数版本,或者您可以创建一种更慷慨的方式来断言您获得的软件从原始的Git存储库中获取,并在本地创建该软件的ZIP版本(如果您不打算进一步开发IMO软件包,则ZIP更方便).
目前只有两种软件产品可以提供帮助:Toran Proxy是Jordi Boggiano(Composer核心开发人员之一)的商业产品,应该也有助于为Composer和基础设施的开发提供资金.另一个软件是Satis,它还允许创建您使用的软件包的本地副本.
免责声明:我的回答可能没有深入细节,可能会提供一些过于简短或可能错误的细节.它并不是要解决每个安全细节,而是要给出一个广泛的概述.软件包的安全性和真实性检查是一个相当长时间讨论的主题(例如参见https://github.com/composer/composer/issues/38),但到目前为止还没有任何结果.
是的,您应该关注并尝试了解涉及哪些数据传输.
Composer的当前实现确实在内部使用了很多校验和,但是没有涉及包签名,因此在期间下载的任何内容都composer install
可能是任何软件,具体取决于托管软件存储库或TGZ/ZIP的服务器,或者被询问元数据是一个有效的目标,可能会被篡改以影响您的安装.
但请注意,这不仅与安全性有关.如果您依赖于在生产部署期间可安装的软件包,则更有可能是所提到的任何服务器都处于脱机状态.您如何保护您的部署免受第三方软件托管的任何服务器中断?这个问题的答案非常简单:在本地托管软件.
这个答案也会影响安全问题:如果您在本地托管软件包,您还可以在内部提供这些版本之前对其进行审核.根据您需要的安全级别,您可以检查您获得的每个版本,并将可用版本限制为只能检查的少数版本,或者您可以创建一种更慷慨的方式来断言您获得的软件从原始的Git存储库中获取,并在本地创建该软件的ZIP版本(如果您不打算进一步开发IMO软件包,则ZIP更方便).
目前只有两种软件产品可以提供帮助:Toran Proxy是Jordi Boggiano(Composer核心开发人员之一)的商业产品,应该也有助于为Composer和基础设施的开发提供资金.另一个软件是Satis,它还允许创建您使用的软件包的本地副本.
免责声明:我的回答可能没有深入细节,可能会提供一些过于简短或可能错误的细节.它并不是要解决每个安全细节,而是要给出一个广泛的概述.软件包的安全性和真实性检查是一个相当长时间讨论的主题(例如参见https://github.com/composer/composer/issues/38),但到目前为止还没有任何结果.