- PVSM.RU - https://www.pvsm.ru -
Уже было нечто подобное. Хотя это поведение багом не было, но его исправили. Дело было в том, что composer мог установить не тот пакет, который указан в composer.json, а замещающий его: Composer: Replace, Conflict & Forks Explained [1], Composer: Downloading Random Code Is Not A Security Vulnerability? [2]. Но осталось другое поведение. Оно очевидно, но, как мне кажется, обделено вниманием.
Composer стремится установить более свежую версию пакета. И ему не важно где он найдёт этот пакет, в приватном источнике пакетов или на packagist.
Таким образом, если используются packagist и приватный источник пакетов одновременно, то существует вероятность того, что приватный пакет будет заменен на другой из packagist (если у них совпадут имена и, например, версии). Таким образом существует вероятность того, что пакет может быть(если учесть закон Мерфи, то будет) преднамернно подменён злоумышленником.
Вывод: Небезопасно использовать packagist и приватный источник пакетов одновременно.
Если ничего не используется с packagist, то его можно просто отключить [3]. Если нужны и те, и те пакеты, то желательно создать свою экосистему используя satis [4] или что-нибудь подобное.
А ещё можно на packagist создать пустой пакет, чтобы никто не смог заменить ваш, но это не согласуется с основной идей packagist.
#3509 [5]
Автор: sectus
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/77175
Ссылки в тексте:
[1] Composer: Replace, Conflict & Forks Explained: http://blog.naderman.de/2014/02/17/replace-conflict-forks-explained/
[2] Composer: Downloading Random Code Is Not A Security Vulnerability?: http://blog.astrumfutura.com/2014/02/composer-downloading-random-code-is-not-a-security-vulnerability/
[3] отключить: https://getcomposer.org/doc/05-repositories.md#disabling-packagist
[4] satis: https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#satis
[5] #3509: https://github.com/composer/composer/issues/3509
[6] Источник: http://habrahabr.ru/post/245745/
Нажмите здесь для печати.