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