Composer 2.10

Релиз Composer 2.10 с упором на безопасность цепочек поставок и защиту от вредоносных пакетов. В релиз добавили встроенную фильтрацию malware, новую систему dependency policy, изменения в механизме source fallback и несколько улучшений для работы с зависимостями.

Защита от вредоносных пакетов

В Composer 2.10 появился механизм malware policy. Он позволяет автоматически блокировать версии пакетов, помеченные как вредоносные.

Если пакет признан malware:

  • его версия исключается из dependency resolution pool;

  • composer update, composer require и composer create-project не смогут установить такой пакет;

  • composer install также заблокирует установку, даже если вредоносная версия уже попала в composer.lock;

  • composer audit завершится ошибкой при обнаружении malware.

Для определения вредоносных пакетов используется feed от Aikido. Функция включена по умолчанию для всех пользователей Packagist и не требует дополнительной настройки.

Поводом для изменений стали недавние supply chain-атаки в PHP-экосистеме, включая компрометацию пакетов laravel-lang и intercom/intercom-php.

Новая система dependency policy

Composer 2.10 объединяет настройки безопасности в единый объект config.policy.

Теперь политики для security advisories, abandoned packages и malware настраиваются одинаковым способом.

Пример отключения проверки abandoned-пакетов:

{
    "config": {
        "policy": {
            "abandoned": false
        }
    }
}

Полное отключение всех политик:

{
    "config": {
        "policy": false
    }
}

Основные параметры policy:

  • block — блокировка пакетов во время install/update;

  • audit — поведение composer audit;

  • ignore — исключения для отдельных пакетов.

Для malware появился параметр block-scope, определяющий, нужно ли блокировать пакет только во время update или также при install. По умолчанию используется режим all.

Поддержка собственных политик

Организации могут подключать собственные dependency policies через внешние источники.

Пример кастомной политики:

{
    "config": {
        "policy": {
            "company-policy": {
                "sources": [
                    {
                        "type": "url",
                        "url": "https://acme.example.com/bad-pkgs.json"
                    }
                ],
                "audit": "fail"
            }
        }
    }
}

Это позволяет централизованно запрещать определённые версии пакетов внутри компании.

Deprecation source fallback

Composer 2.10 начинает отключение механизма source fallback.Ранее Composer автоматически переключался на установку из Git-репозитория, если загрузка dist-архива завершалась ошибкой. Это могло приводить к установке вредоносного кода даже при наличии безопасной mirrored-версии пакета.

Для совместимости добавлен параметр source-fallback, позволяющий временно вернуть старое поведение.

Полное удаление source fallback запланировано в Composer 2.11.

Wildcard-поддержка для --with

Флаг --with в composer update теперь поддерживает wildcard-выражения.

Пример:

composer update --with "acme/*:^2.0"

Теперь можно временно ограничивать версии сразу для группы пакетов одного vendor без перечисления каждого пакета отдельно.

--require для create-project

Команда create-project получила параметр --require.

Пример:

composer create-project acme/skeleton my-project \
    --require="acme/extra-bundle:^1.0"

Это позволяет устанавливать дополнительные зависимости сразу при создании проекта.

Другие изменения

В Composer 2.10 также вошли:

  • оптимизация autoloading для плагинов;

  • снижение потребления памяти PoolOptimizer;

  • исправление --bump-after-update;

  • дополнительные security hardening-изменения для Git credentials и TLS.

В сообществе PHP релиз уже называют одним из самых важных обновлений Composer за последнее время из-за усиления защиты от supply chain-атак.

Источник: Package List

Похожие статьи

Рекомендательные технологии Подробнее
Технологии и IT-новости 2 недели назад

Kali Linux 2026.2 получил GNOME 50, KDE Plasma 6.6 и новые инструменты

Вышел релиз Kali Linux 2026.2 с ядром Linux 6.19, поддержкой GNOME 50 и KDE Plasma 6.6. Обновление также включает новые инструменты для тестирования безопасности, современный формат APT DEB822 и другие улучшения.

Технологии и IT-новости 3 месяца назад

Google выпустила офлайн-приложение для диктовки на iOS

Google выпустила экспериментальное приложение для диктовки текста, которое работает офлайн на iPhone. Оно использует локальные AI-модели и автоматически улучшает речь до готового текста.

Технологии и IT-новости 5 месяцев назад

Linux Kernel 7.0 официально анонсирован: что нового и почему это важно

Linux Kernel 7.0 открывает новый этап развития ядра Linux после завершения ветки 6.x. В материале разбирается, почему разработчики перешли к новой нумерации, какие изменения уже заложены в 7.0 и когда обновление появится в дистрибутивах.

Технологии и IT-новости 6 месяцев назад

Tailwind CSS сократил 75% инженеров из-за ИИ и изменившихся моделей монетизации

Анализ причин увольнений в Tailwind CSS и влияния ИИ на бизнес-модели open-source проектов. Почему популярность фреймворка не спасла доходы и что это значит для индустрии.