php - 如何升级作曲家?- Composer 更新失败:无法写入“/opt/cpanel/composer/bin/composer”
问题描述
背景:
- 据 2021 年 4 月 27 日报道,Composer 存在影响 PHP 的漏洞。
- https://blog.packagist.com/composer-command-injection-vulnerability/
- https://portswigger.net/daily-swig/php-package-manager-flaw-left-millions-of-web-apps-open-to-abuse
- 建议的操作:更新到 Composer 2.0.13
- 作曲家 - https://getcomposer.org/
服务器环境:
- Linux
- 共享网络托管
这些是我采取的步骤:
第 1 步:登录到终端并找出我正在使用的作曲家版本
composer -vvv about
结果:
在 Linux / 4.19.150-76.ELK.el6.x86_64 上使用 PHP 7.3.27 运行 2.0.6 (2020-11-07 11:21:17)
第二步:运行命令更新 Composer
composer self-update
结果:错误消息
升级到版本 2.0.13(稳定通道)。
[Composer\Downloader\FilesystemException] 文件系统异常:Composer 更新失败:“/opt/cpanel/composer/bin/composer”无法写入。重命名(/opt/cpanel/composer/bin/composer):无法打开流:只读文件系统
自我更新 [-r|--rollback] [--clean-backups] [--no-progress] [--update-keys] [--stable] [--preview] [--snapshot] [-- 1] [--2] [--set-channel-only] [--] [<版本>]
第 3 步:找出 /opt/cpanel/composer/bin/composer 的权限
ls -l /opt/cpanel/composer/bin/composer
结果:
-rwxr-xr-x 1 bin bin 2192976 Nov 10 13:37 /opt/cpanel/composer/bin/composer*
stat /opt/cpanel/composer/bin/composer
结果:
文件:`/opt/cpanel/composer/bin/composer'
大小:2192976 块:4288 IO 块:4096 常规文件
设备:801h/2049d 索引节点:266192 链接:1
访问:(0755/-rwxr-xr-x) Uid:(1/ bin) Gid:(1/ bin)
访问:2021-05-02 02:40:36.937400521 -0600
修改:2020-11-10 13:37:13.000000000 -0700
更改:2021-04-14 16:25:27.129945713 -0600
解决方案
您无法在共享主机环境中升级 composer。您可以将一个全新的 composer 实例下载到另一个文件夹,但您可能会遇到限制。您应该联系托管服务提供商并让他们知道。或者,由于您在 cPanel 上,您可以联系 cPanel。
此外,您应该更仔细地阅读漏洞利用。你有水银吗?此漏洞甚至可能不适用于您。
您列出的第二个漏洞利用链接与您无关,因为您的版本高于被利用的版本。
推荐阅读
- android - 当应用程序未运行时处理 android 推送通知,如 whatsapp、twitter、facebook、instagram 等
- ios - 我怎样才能更好地转换我的代码
- c++ - C++ getter 和 setter 不传递变量
- mpdf - mPDF,删除编码软件
- sorting - Unix - 根据前两列值对文本文件内容进行排序
- spring-boot - 以下 Native sql 查询(Sybase)的等效 querydsl 代码是什么?
- css - 我想让我的 flexbox 水平滚动
- sql - Oracle SQL - 从一个字符串中选择两个子字符串并将它们组合在另一列中
- tfs - TFS 代理池,在池 PublishPool 中找不到满足指定要求的代理:msbuild visualstudio Agent.Version -gtVersion 1.95.0
- kotlin - Koin:为什么在 myObject.scope.close() 之后,它仍然有效?